Frage

Ich hatte eine Idee, die ich in der Lage zu senden und Empfangen von Nachrichten über die Standard-Messenger-Protokolle wie msn erfordern würde, icq, zielt darauf ab, Skype, etc ...

Ich bin derzeit nur vertraut mit PHP und Python und würde somit eine Bibliothek genießen, die ich von den Sprachen zugreifen kann. Ich habe festgestellt phurple ( http://sourceforge.net/projects/phurple/ ) für PHP und python-lila ( http://developer.pidgin.im/wiki/PythonHowTo ), die don ‚t scheint auf dem neuesten Stand zu sein. Was würde euch vorschlagen, zu tun? Mein Ziel wird eine Webapplikation in einem fernen Weise wie meebo.com

zu schreiben sein

Die Antwort sollte ein Tutorial oder Beispiel-Implementierung und eine anständigen Dokumentationen enthält .. die pidgin.im nicht wirklich ein brauchbares Tutorial hat ..

Alternativ können Sie auch mir nur verschiedene Arten von Implementierungen sagen, so dass ich meine eigene Klasse aus einer bestehenden icq bauen würde, zielt darauf ab, msn usw. Umsetzung.

Ein Beispiel, wie auf ein Konto (Login) zu verbinden und dann eine Nachricht zu senden wäre die ultimative Hilfe!

Kommt man Jungs:)

War es hilfreich?

Lösung

Hier ist, wie auf den Pidgin DBus-Server zu verbinden.

#!/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."

Sie wissen nicht, ob Sie das schon gesehen haben, aber hier ist der offizielle Python DBus Tutorial: Link .

EDIT: Re schöpf Link zum Pidgin Entwickler-Wiki. Es lehrt Sie alles, was ich oben geschrieben, nur blättern weiter unten auf der Seite. http://developer.pidgin.im/wiki/PythonHowTo

Andere Tipps

Eine gute Wette durch die D-Bus-Schnittstelle zu gehen sei: Pidgin (lila) voll unterstützt und die DBus Interface-Bibliothek für Python ist recht stabil

.

Wenn Sie die Datei aus phurple dekomprimieren Sie einige Beispiele wie diese:

<?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();
  }
?>

Ich benutze WebIcqLite: ICQ-Nachrichten Absender für das ICQ-Protokoll. Es funktioniert und die Klasse ist leicht zu verstehen. Ich weiß nicht, über andere Protokolle, though. Was mit der Phurple Bibliothek falsch?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top