Работа с Jabber в PHP

Разработка своих веб-приложений и страничек

Работа с Jabber в PHP

Сообщение Rostov114 » 11 мар 2009, 02:02

Работа с Jabber в PHP
Офф. сайт: phpbb.com
Версия статьи - 1.0.0

В данной статье я приведу простой пример роботы с протоком Jabber при помощи PHP.
Я буду использовать немного измененный класс позаимствованный у phpBB 3.0.
jabber.class.zip
(6.15 Кб) Скачиваний: 608


Сам класс использовать так:
Код: Выделить всёРазвернуть
<?
// Подключаем класс для работы с Jabber
include "jabber.class.php";

/*
 *  Определение класса и параметры соединения с сервером
 *  
 *  server - сервер на котором находится аккаунт Jabber. Например: jabnet.org
 *  port   - порт для соединения с сервером Jabber, стандартно 5222.
 *  user   - Jabber ID пользователя. Например: Rostov114
 *  pass   - Пароль Jabber ID. 
 *
 *  Имеется также 5й не обязательный параметр который указывает SSL оединение. Но в большинстве случаев он не нужен.
 */

$jabber = new jabber(server, port, user, pass);
            
// Подключаемся к серверу
if (!$jabber->connect())
{
    print "Ошибка соединения с сервером: ".$jabber->server;
    exit();
}
            
// Авторитизируемся
if (!$jabber->login())
{
    echo "Ошибка авторитизации. Пользователь: ".$jabber->username;
    exit();
}

/*
 *  Отправляем сообщение
 *  
 *  JID       - Jabber ID получателя. Например: Rostov114@jabnet.org
 *  MSG       - отсылаемое сообщение
 *  SUBJECT   - Тема сообщения
 *
 *  Также замечу, не в коем случае не убирайте функции mb_convert_encoding() в противном случае сообщения доходить не будут вообще. Это связано с тем что обмен сообщениями клиент <-> сервер происходит в кодировке UTF-8 поэтому если послать сообщение в cp1251 это вызовит ошибку и сообщение не доставится адресату.
 */

$jabber->send_message(JID, mb_convert_encoding(MSG, 'UTF-8','cp1251'), mb_convert_encoding(SUBJECT, 'UTF-8','cp1251'));

// Отсоединяемся
$jabber->disconnect();

// Выводим лог работы
print $jabber->get_log();

exit();
 

:wink: Думаю в комментариях описано все доскональна. Так что вопросов возникнуть не должно.
Последний раз редактировалось Rostov114 07 июн 2009, 08:36, всего редактировалось 1 раз.
Некоммерческий проект «HSDN»
Аватара пользователя
Rostov114
Автор
 
Сообщения: 3197
Зарегистрирован: 18 окт 2007, 02:21

Re: Работа с Jabber в PHP

Сообщение Костик » 11 мар 2009, 02:34

Ждем теперь Jabber BOT-а :)
FreeBSD 9.2 and Fedora 18 user
Аватара пользователя
Костик
Активный участник
 
Сообщения: 1944
Зарегистрирован: 03 сен 2007, 02:15

Re: Работа с Jabber в PHP

Сообщение On-line » 11 мар 2009, 15:02

Rostov114, спасибо!
zk, может в статьи?
Аватара пользователя
On-line
Активный участник
 
Сообщения: 1083
Зарегистрирован: 31 окт 2008, 23:54
Домен: http://vbalashove.ru

Re: Работа с Jabber в PHP

Сообщение nE0sIghT » 05 апр 2009, 03:10

Код: Выделить всёРазвернуть
$this->jabber->disconnect();

Наверно имелось в виду
Код: Выделить всёРазвернуть
$jabber->disconnect();


Не будет работать, если сообщение не в cp1251

Поскольку класс ориентирован на UTF-8, было бы целесообразнее писать frontend в UTF-8, а перекодирование применять лишь по необходимости.

Зачем здесь sleep() и flush()?
ИзображениеИзображение
Аватара пользователя
nE0sIghT
Начинающий участник
 
Сообщения: 14
Зарегистрирован: 25 сен 2007, 16:10
Откуда: Млечный путь,7-ой рукав,YD AC-451,3-я планета,восточное полу
Домен: miranda-im.vfose.ru

Re: Работа с Jabber в PHP

Сообщение server801 » 08 окт 2009, 14:42

http://webdev.ks.ua/2009-02/otpravka-php-jabber.html
тоже интересная тема
ИзображениеИзображение
Изображение
Аватара пользователя
server801
Активный участник
 
Сообщения: 511
Зарегистрирован: 14 янв 2009, 14:28

Re: Работа с Jabber в PHP

Сообщение badApple » 03 дек 2009, 18:37

В нём можно общаться по микрофону???и он работает через подключение фос??
badApple

 
Сообщения: 2
Зарегистрирован: 03 дек 2009, 18:36
Домен: badapple.vfose.ru

Re: Работа с Jabber в PHP

Сообщение Rostov114 » 23 дек 2009, 15:54

badApple писал(а):В нём можно общаться по микрофону???и он работает через подключение фос??

1. Jabber - это тебе не Skype, поэтому нет.
2. Да, jabnet.org
Некоммерческий проект «HSDN»
Аватара пользователя
Rostov114
Автор
 
Сообщения: 3197
Зарегистрирован: 18 окт 2007, 02:21

Re: Работа с Jabber в PHP

Сообщение ded-mazay » 09 апр 2010, 15:11

добавил к образцу в первом посте такие строки:

$server = '192.168.0.221';
$user = 'myuser@myserverstring';
$password = 'mypwd';
$port = '5222';

$JID = 'anyuser@myserverstring';
$MSG = 'test';
$SUBJECT = 'test';

Вываливает не могу авторизоваться, пользователь (тут пусто). Поменял в строке echo "Ошибка авторитизации. Пользователь: ".$jabber->user; на echo "Ошибка авторитизации. Пользователь: ".$jabber->username; пользователь отображается, авторизоваться не может. Убрал авторизацию, вывалил Call to undefined function: mb_convert_encoding(), действительно ни в примере ни в классе этой ф-ции я не нашел, че за хня???

P.S.

Строка иницияализации такая: $jabber = new jabber($server, $port, $user, $password);
Последний раз редактировалось ded-mazay 09 апр 2010, 15:15, всего редактировалось 1 раз.
ded-mazay
Начинающий участник
 
Сообщения: 5
Зарегистрирован: 09 апр 2010, 15:01

Re: Работа с Jabber в PHP

Сообщение Zver » 09 апр 2010, 15:14

Скорее всего у тебя нет PHP библиотеки mb_string.dll
Zver
Активный участник
 
Сообщения: 1333
Зарегистрирован: 18 дек 2008, 18:51
Откуда: Саратов, Заводской

Re: Работа с Jabber в PHP

Сообщение ded-mazay » 09 апр 2010, 15:16

Конечно нет :) У меня линух

Строка конфига PHP:

'./configure' '--build=i686-redhat-linux-gnu' '--host=i686-redhat-linux-gnu' '--target=i386-redhat-linux-gnu' '--program-prefix=' '--prefix=/usr' '--exec-prefix=/usr' '--bindir=/usr/bin' '--sbindir=/usr/sbin' '--sysconfdir=/etc' '--datadir=/usr/share' '--includedir=/usr/include' '--libdir=/usr/lib' '--libexecdir=/usr/libexec' '--localstatedir=/var' '--sharedstatedir=/usr/com' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--cache-file=../config.cache' '--with-config-file-path=/etc' '--with-config-file-scan-dir=/etc/php.d' '--enable-force-cgi-redirect' '--disable-debug' '--enable-pic' '--disable-rpath' '--enable-inline-optimization' '--with-bz2' '--with-db4=/usr' '--with-curl' '--with-exec-dir=/usr/bin' '--with-freetype-dir=/usr' '--with-png-dir=/usr' '--with-gd=shared' '--enable-gd-native-ttf' '--without-gdbm' '--with-gettext' '--with-ncurses=shared' '--with-gmp' '--with-iconv' '--with-jpeg-dir=/usr' '--with-openssl' '--with-png' '--with-pspell' '--with-xml' '--with-expat-dir=/usr' '--with-dom=shared,/usr' '--with-dom-xslt=/usr' '--with-dom-exslt=/usr' '--with-xmlrpc=shared' '--with-pcre-regex=/usr' '--with-zlib' '--with-layout=GNU' '--enable-bcmath' '--enable-exif' '--enable-ftp' '--enable-magic-quotes' '--enable-sockets' '--enable-sysvsem' '--enable-sysvshm' '--enable-track-vars' '--enable-trans-sid' '--enable-yp' '--enable-wddx' '--with-pear=/usr/share/pear' '--with-imap=shared' '--with-imap-ssl' '--with-kerberos' '--with-ldap=shared' '--with-mysql=shared,/usr' '--with-pgsql=shared' '--with-snmp=shared,/usr' '--with-snmp=shared' '--enable-ucd-snmp-hack' '--with-unixODBC=shared,/usr' '--enable-memory-limit' '--enable-shmop' '--enable-calendar' '--enable-dbx' '--enable-dio' '--enable-mbstring=shared' '--enable-mbstr-enc-trans' '--enable-mbregex' '--with-mime-magic=/usr/share/file/magic.mime' '--enable-dbase' '--with-apxs2=/usr/sbin/apxs'

Т.е. расширение mbstring подключено вроде как (--enable-mbstring=shared)
Последний раз редактировалось ded-mazay 09 апр 2010, 15:19, всего редактировалось 1 раз.
ded-mazay
Начинающий участник
 
Сообщения: 5
Зарегистрирован: 09 апр 2010, 15:01

След.

Вернуться в PHP, HTML, CSS...

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 26