libpurple php binding
Anatoliy Belsky
anatoliy at belsky.info
Tue Nov 27 18:05:38 EST 2007
Hi there,
so I would present the begin of my work on the libpurple php binding. It's yet
very rudimentary but I've already realized the nullclient and a little bit
more.
The project site can be found on:
http://sourceforge.net/projects/phpurple
The code itself can be fetched with;
svn co https://phpurple.svn.sourceforge.net/svnroot/phpurple phpurple
The further steps would be (don't forget to install the php devel package on
your system):
cd phpurple
phpize
./configure --enable-purple
make
After this you should have the modules/purple.so file. And you can use it.
Eventually you can run
make install
if you have root rights and want to install it globally as a php extension
(but it's not nesessary yet).
than make the file test.php (in the phpurple dir) with the following content:
#!/usr/bin/php
<?php
if(!extension_loaded('purple')) {
dl('purple.' . PHP_SHLIB_SUFFIX);
}
$ui_id = "hello world";
purple_php_write_conv_function("my_write_conv");
function my_write_conv($conversation, $who, $alias, $message, $flags, $time)
{
if ($alias) {
$name = $alias;
} else if ($who) {
$name = $who;
} else {
$name = NULL;
}
if(PURPLE_MESSAGE_RECV == $flags) {
printf( "(%s) %s %s: %s\n",
purple_conversation_get_name($conversation),
date("H:i:s", $time),
$name,
$message
);
}
if(!purple_core_init($ui_id)) {
die("libpurple initialization failed\n");
}
purple_blist_new();
purple_prefs_load();
purple_plugins_load_saved();
purple_pounces_load();
//or some protocol ever supported
$account = purple_account_new("somenick at hotmail.com", "MSN");
purple_account_set_password($account, "somepass");
purple_account_set_enabled($account, $ui_id, true);
purple_savedstatus_new(NULL, PURPLE_STATUS_AVAILABLE);
purple_savedstatus_activate();
purple_signal_connect("signed-on");
purple_loop();
?>
Now you should be able to start a conversation from the other side and see the
outputs in the console. To run the php ( I expect u still in the phpurple
dir ) run
php -n -d extension_dir=modules -f test.php
I've tested and built the whole thing on debian etch with PHP 5.2.0-8
So if someone has tested this, I would hear something, what should be it the
ext, to can call it something like phpurple1.0 ... may be you see something
wrong in my c code ... I'll assume any meaning
thanks a lot
Anatoliy
More information about the Devel
mailing list