如何使用 Pidgin、Python、whatsapp?

Posted

技术标签:

【中文标题】如何使用 Pidgin、Python、whatsapp?【英文标题】:how to Pidgin , Python , whatsapp? 【发布时间】:2014-05-05 11:55:14 【问题描述】:

如果我们有这个用于 msn 的 Pidgin 代码:

#!/usr/bin/python
import sys, dbus, gobject;
bus = dbus.SessionBus()
obj = bus.get_object("im.pidgin.purple.PurpleService", "/im/pidgin/purple/PurpleObject")
purple = dbus.Interface(obj, "im.pidgin.purple.PurpleInterface")


msnusers = (["someon@hotmail.com", "someoneelse@msn.com", "thatguy@hotmail.com", "somethingoranother@hotmail.com"])

for msn_id in msnusers:
        account_id = purple.PurpleAccountsGetAllActive()[0]
        conversation = purple.PurpleConversationNew(1, account_id, msn_id)
        im = purple.PurpleConvIm(conversation)
        purple.PurpleConvImSend(im, 'hi')

whatsapp 我需要使用相同的方式 但我找不到它是怎么回事

我试试这个,但它不起作用:

#!/usr/bin/python
import sys, dbus, gobject;
bus = dbus.SessionBus()
obj = bus.get_object("im.pidgin.purple.PurpleService", "/im/pidgin/purple/PurpleObject")
purple = dbus.Interface(obj, "im.pidgin.purple.PurpleInterface")

wpusrs = str(96895605520)

for i in wpusrs:
    account = purple.PurpleAccountsGetAllActive()
    conversation = purple.PurpleConversationNew(1,account,i)
    im = purple.PurpleConvIm(conversation)
    purple.PurpleConvImSend(im,'hi')

请帮帮我:'(

【问题讨论】:

能否请您提供更详细的信息,而不仅仅是“它不起作用”。它会崩溃吗?你有错误吗?代码的哪些部分失败了? 忽略任何功能细节(我们稍后会介绍),您应该注意原始 account_id = ... 行和您的 account = ... 行之间的差异。差异是物质的。此外,根据第一个帐户的类型是否正确,要求将其弄错。 另外,我认为您的循环不会像您期望的那样做,除非您打算让它单独操作该数字中的每个数字。这甚至假设 pidgin/libpurple 中的 whatsapp 支持使用裸数字字符串作为联系人 ID。 【参考方案1】:

谢谢大家重播... 我找到了我需要的东西

import dbus
session_bus = dbus.SessionBus()
purple_obj = session_bus.get_object("im.pidgin.purple.PurpleService",
                                "/im/pidgin/purple/PurpleObject")
purple_int = dbus.Interface(purple_obj, 
                        "im.pidgin.purple.PurpleInterface")
my_account_id = purple_int.PurpleAccountsGetAllActive()[0] # or some other account from yours
conv = purple_int.PurpleConversationNew(1, my_account_id, "recipient's number")
conv_im = purple_int.PurpleConvIm(conv)
purple_int.PurpleConvImSend(conv_im, "This is your message")

【讨论】:

以上是关于如何使用 Pidgin、Python、whatsapp?的主要内容,如果未能解决你的问题,请参考以下文章

Dbus 的 Python 访问 Pidgin 数据结构

使用pidgin dbus python api获取xmpp资源字符串

如何断开 python DBus 连接?

我试图弄清楚如何将 dbus 与 pidgin 一起使用

DBus Finch/Pidgin 不带 X11

如何在Ubuntu中通过编译源码包安装软件Pidgin