4

msn、icq、Aim、skype などの標準的なメッセンジャー プロトコルを介してメッセージを送受信できるようにする必要があるという考えがありました。

私は現在、PHP と Python にしか慣れていないので、これらの言語からアクセスできるライブラリを楽しみたいと思っています。php のphurple ( http://sourceforge.net/projects/phurple/ ) と python-purple ( http://developer.pidgin.im/wiki/PythonHowTo ) が最新ではないようです。 . あなたたちは何をすることを提案しますか? 私の目標は、meebo.com のような遠い方法で Web アプリケーションを作成することです。

答えには、チュートリアルまたは実装例と適切なドキュメントが含まれている必要があります.pidgin.imには、実際には有用なチュートリアルがありません..

あるいは、さまざまな種類の実装を教えていただければ、既存の icq、Aim、msn などの実装から独自のクラスを構築できます。

アカウントに接続 (ログイン) してから 1 つのメッセージを送信する方法の例は、究極のヘルプです!

みんな来てください:)

4

4 に答える 4

11

Here is how to connect to the Pidgin DBus server.

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

Don't know if you have seen this, but here is the official python DBus tutorial: 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

于 2009-10-30T20:35:44.453 に答える
2

DBus インターフェイスを使用することをお勧めします。Pidgin (紫) はそれを完全にサポートしており、Python 用の DBus インターフェイス ライブラリは非常に安定しています。

于 2009-10-25T12:52:09.833 に答える
1

purple からファイルを解凍すると、次のような例が得られます。

<?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();
  }
?>
于 2009-11-04T07:15:58.230 に答える
0

私はWebIcqLite: ICQ プロトコルの ICQ メッセージ送信者を使用します。それは機能し、クラスは理解しやすいです。ただし、他のプロトコルについてはわかりません。Phurple ライブラリの何が問題になっていますか?

于 2009-11-03T22:55:14.797 に答える