Domanda

Ho avuto un'idea che mi avrebbe richiesto di essere in grado di inviare e ricevere messaggi tramite i protocolli di messaggistica standard come msn, icq, aim, skype, ecc ...

Al momento ho familiarità con PHP e Python e mi piacerebbe quindi avere una libreria a cui posso accedere da dette lingue. Ho trovato phurple ( http://sourceforge.net/projects/phurple/ ) per php e python-purple ( http://developer.pidgin.im/wiki/PythonHowTo ) che don sembra essere aggiornato. Cosa suggerireste di fare ragazzi? Il mio obiettivo sarà quello di scrivere un'applicazione web in modo distante come meebo.com

La risposta dovrebbe includere un tutorial o un'implementazione di esempio e una documentazione decente. Il pidgin.im non ha davvero un tutorial utile ..

in alternativa puoi anche dirmi diversi tipi di implementazioni, in modo da costruire la mia classe da un'implementazione icq, obiettivo, msn ecc. esistente.

Un esempio di come connettersi a un account (login) e quindi inviare un messaggio sarebbe l'ultimo aiuto!

Vieni uno ragazzi :)

È stato utile?

Soluzione

Ecco come connettersi al server 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."

Non so se l'hai visto, ma ecco il tutorial ufficiale di DBus su Python: link .

MODIFICA: riaggiunta del link al wiki di sviluppo pidgin. Ti insegna tutto ciò che ho pubblicato sopra, basta scorrere più in basso nella pagina. http://developer.pidgin.im/wiki/PythonHowTo

Altri suggerimenti

Una buona scommessa sarebbe quella di passare attraverso l'interfaccia DBus: Pidgin (viola) la supporta completamente e la libreria dell'interfaccia DBus per Python è abbastanza stabile.

Se decomprimete il file da phurple, otterrete alcuni esempi come questo:

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

Uso WebIcqLite: mittente messaggi ICQ per il protocollo ICQ. Funziona e la classe è facile da capire. Non conosco altri protocolli, però. Cosa c'è che non va nella libreria Phurple?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top