Question

J'avais une idée qui exigerait que je sois capable d'envoyer et de recevoir des messages via les protocoles de messagerie standard tels que msn, icq, objectif, skype, etc ...

Actuellement, je ne connais que PHP et Python et je bénéficierais ainsi d'une bibliothèque à laquelle je peux accéder à partir de ces langages. J'ai trouvé phurple ( http://sourceforge.net/projects/phurple/ ) pour php et python-purple ( http://developer.pidgin.im/wiki/PythonHowTo ) qui ne semble pas être à jour. Que suggéreriez-vous les gars? Mon objectif sera d’écrire une application Web de manière lointaine, comme meebo.com

La réponse devrait inclure un tutoriel ou un exemple d'implémentation et une documentation correcte .. le pidgin.im n'a pas vraiment de tutoriel utile ..

alternativement, vous pouvez également me dire différents types d’implémentations, afin que je construise ma propre classe à partir d’une implémentation icq, but, msn etc. existante.

Un exemple de connexion à un compte (connexion) puis d'envoi d'un message constituerait une aide ultime!

Viens un gars:)

Était-ce utile?

La solution

Voici comment vous connecter au serveur Pidgin DBus.

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

Je ne sais pas si vous avez déjà vu cela, mais voici le didacticiel officiel de DBus sur python: link .

MODIFIER: l'ajout d'un lien vers le wiki de pidgin dev. Il t'apprend tout ce que j'ai posté ci-dessus, il suffit de faire défiler plus bas la page. http://developer.pidgin.im/wiki/PythonHowTo

Autres conseils

Un bon choix serait de passer par l’interface DBus: Pidgin (violet) la supporte pleinement et la bibliothèque d’interface DBus pour Python est relativement stable.

Si vous décompressez le fichier depuis phurple, vous obtenez un exemple comme celui-ci:

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

J'utilise WebIcqLite: expéditeur de messages ICQ pour le protocole ICQ. Cela fonctionne et la classe est facile à comprendre. Je ne connais pas d'autres protocoles, cependant. Quel est le problème avec la bibliothèque Phurple?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top