(Libpurple) messenger protokoller aracılığıyla mesaj gönderme ve alma

4 Cevap php

Bana vb msn, ICQ, AIM, skype gibi standart haberci protokoller aracılığıyla mesaj göndermek ve almak mümkün gerektirecek bir fikrim yoktu ..

Şu anda PHP ve Python ile sadece tanıdık ve böylece ben erişebileceğiniz bir kütüphane dalabilir dilleri söyledi. Ben phurple (http://sourceforge.net/projects/phurple/) php ve python-mor için (http://developer.pidgin.im/wiki/PythonHowTo) güncel olmak için hangi görünmüyor bulduk. Siz ne yapmak için önerirsiniz? Amacım meebo.com gibi uzak bir şekilde bir Web uygulaması yazmak olacak

Cevabı bir öğretici veya örnek uygulama ve iyi bir dokümantasyon içermelidir .. pidgin.im gerçekten yararlı bir öğretici yoktur ..

Ben, varolan icq üzerinden kendi sınıfı oluşturmak amacı, msn vb uygulama olurdu böylece alternativly ayrıca sadece bana uygulamalarının farklı söyleyebilirim.

Bir hesaba (login) bağlanmak için ve sonra bir mesaj göndererek nihai yardım nasıl olacağını bir örnek!

Tek adamlar gel :)

4 Cevap

İşte Pidgin DBus sunucuya bağlanmak için nasıl.

#!/usr/bin/env python
import dbus

bus = dbus.SessionBus()

if "im.pidgin.purple.PurpleService" in bus.list_names():
    purple = bus.get_object("im.pidgin.purple.PurpleService",
            "/im/pidgin/purple/PurpleObject",
            "im.pidgin.purple.PurpleInterface")

    print "Connected to the pidgin DBus."
    for conv in purple.PurpleGetIms():
        purple.PurpleConvImSend(purple.PurpleConvIm(conv), "Ignore this message.")

else:
    print "Could not find piding DBus service, make sure Pidgin is running."

Bu gördük biliyorum, ama burada resmi piton DBus öğretici etmeyin: link.

EDIT: Re-adding link to the pidgin dev wiki. It teaches you everything I posted above, just scroll further down the page. http://developer.pidgin.im/wiki/PythonHowTo

İyi bir bahis DBus arayüzü üzerinden gitmek olurdu: (mor) Pidgin tam olarak destekler ve Python için DBus arayüz kütüphanesi oldukça kararlı.

Eğer phurple gelen dosya sıkıştırması Eğer bu gibi bazı örnek olsun:

<?php
  if(!extension_loaded('phurple')) {
  dl('phurple.' . PHP_SHLIB_SUFFIX);
  }

  class CustomPhurpleClient extends PhurpleClient {
    private $someVar;
    protected function initInternal() {
    	$this->someVar = "Hello World";
    }

    protected function writeIM($conversation, $buddy, $message, $flags, $time) {
    	if(PhurpleClient::MESSAGE_RECV == $flags) {
    		printf(	"(%s) %s %s: %s\n",
    					$conversation->getName() ? $conversation->getName() : $buddy->getName(),
    					date("H:i:s", $time),
    					is_object($buddy) ? $buddy->getAlias() : $buddy,
    					$message
    			);
    	}
    }

    protected function onSignedOn($connection) {
    	print $this->justForFun($this->someVar);
    }

    public function justForFun($param) {
    	return "just for fun, the param is: $param";
    }
  } 
  // end Class CustomPhurpleClient

  // Example Code Below:
  try {
    $user_dir = "/tmp/phphurple-test";
    if(!file_exists($user_dir) || !is_dir($user_dir)) {
    	mkdir($user_dir);
    }

    PhurpleClient::setUserDir($user_dir);
    PhurpleClient::setDebug(true);
    PhurpleClient::setUiId("TestUI");

    $client = CustomPhurpleClient::getInstance();
    $client->addAccount("msn://nick@hotmail.com:password@messenger.hotmail.com:1863");
    $client->connect();

    $client->runLoop();
  } catch (Exception $e) {
    echo "[Phurple]: " . $e->getMessage() . "\n";
    die();
  }
?>

I WebIcqLite: ICQ messages sender ICQ protokolü için kullanın. Bu çalışır ve sınıf anlamak kolaydır. Ama, diğer protokoller hakkında bilmiyorum. Ne Phurple kütüphane ile yanlış?