إرسال واستقبال الرسائل عبر (libpurple) رسول البروتوكولات

StackOverflow https://stackoverflow.com/questions/1620793

  •  06-07-2019
  •  | 
  •  

سؤال

خطرت لي فكرة هذا يتطلب مني أن تكون قادرة على إرسال واستقبال الرسائل عبر القياسية رسول البروتوكولات مثل msn, icq, aim, skype, الخ...

أنا حاليا على دراية فقط مع PHP و Python و بالتالي تتمتع المكتبة التي لا يمكن الوصول إليها من قال اللغات.لقد وجدت phurple (http://sourceforge.net/projects/phurple/) ل php و python-الأرجواني (http://developer.pidgin.im/wiki/PythonHowTo) الذي لا يبدو أن يكون على ما يصل إلى التاريخ.ماذا بإمكانكم أقترح أن تفعل ؟ سيكون هدفي أن أكتب webapplication في الطريقة البعيدة مثل meebo.com

الجواب ينبغي أن يشمل البرنامج التعليمي أو تنفيذ سبيل المثال لائق التوثيقات..في بجين.ايم لا يكون حقا مفيدة التعليمي..

alternativly يمكنك أيضا أخبرني أنواع مختلفة من التطبيقات ، وذلك بناء بلدي فئة من القائمة icq, aim, msn الخ التنفيذ.

مثال على كيفية الاتصال إلى حساب (تسجيل الدخول) ومن ثم إرسال رسالة واحدة سيكون في نهاية المطاف مساعدة!

هيا يا شباب :)

هل كانت مفيدة؟

المحلول

هنا هو كيفية الاتصال بجين 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."

لا أعرف إذا كنت قد رأيت هذا ، ولكن هنا هو المسؤول الثعبان dbus تثبيت البرنامج التعليمي: الرابط.

تحرير: إعادة إضافة رابط بجين ديف ويكي.أنه يعلم كل ما نشر أعلاه ، مجرد التمرير من أسفل الصفحة. http://developer.pidgin.im/wiki/PythonHowTo

نصائح أخرى

وهناك رهان جيد سيكون للذهاب من خلال واجهة DBus تثبيت: بجين (البنفسجية) يدعم بالكامل ومكتبة واجهة DBus تثبيت لبيثون غير مستقر تماما

.

إذا ضغط الملف من phurple تحصل بعض الأمثلة من هذا القبيل:

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