Yowsup WhatsApp获得电话号码

时间:2014-04-03 10:14:18

标签: python whatsapp

我试图了解如何使用WhatsApp的Yowsup库。我可以发送消息,我可以收到消息,但我有兴趣获取电话号码以开始新的聊天。 换句话说,将开发一个可以与WhatsApp用户交互的计算机应用程序,现在我可以执行以下操作:

  1. 我使用此命令访问WhatsApp服务器:python yowsup-cli -c config.example --requestcode smspython yowsup-cli -c config.example --register xxx-xxx
  2. 我使用以下命令发送消息:python yowsup-cli -c config.example -s 39xxxxxxxxxx "!"
  3. 我可以使用此命令进行交互式对话:python yowsup-cli -c config.example -i 39xxxxxxxxxx
  4. 使用此命令获取我收到的所有消息:python yowsup-cli -c config.example -l
  5. 现在,当用户向我发送消息时,我可以与他/她进行互动?我想我应该从命令python yowsup-cli -c config.example -l获取电话号码并使用此命令开始一个新的交互式对话:python yowsup-cli -c config.example -i 39xxxxxxxxxx其中39xxxxxxxxxx是我使用上一个命令获得的用户号码。 我希望你能帮助我

1 个答案:

答案 0 :(得分:5)

我认为你不想将yowsup-cli用于开发目的。我认为这是一个功能非常有限的简单演示客户端。

如果查看yowsup-cli source code,您会看到它实际导入included examples以提供命令行消息功能。

您在此代码中看到的是python yowsup-cli -c config.example -l实际调用

wa = WhatsappListenerClient(args['keepalive'], args['autoack'])
wa.login(login, password)

另一方面,此示例侦听器客户端具有注册到message_received信号的回调函数。

self.signalsInterface.registerListener("message_received", self.onMessageReceived)

现在,如果你仔细看看这个功能

def onMessageReceived(self, messageId, jid, messageContent, timestamp, wantsReceipt, pushName, isBroadCast):
    formattedDate = datetime.datetime.fromtimestamp(timestamp).strftime('%d-%m-%Y %H:%M')
    print("%s [%s]:%s"%(jid, formattedDate, messageContent))

    if wantsReceipt and self.sendReceipts:
        self.methodsInterface.call("message_ack", (jid, messageId))

您可以查看jid,因此您需要的电话号码位于parameter list of this signal。如果您希望在他向您发送消息后与用户进行互动,我猜您应该将您自己订户中的jid或电话号码存储到此信号中。

简而言之 - 不要将yowsup-cli本身用于开发。使用它作为构建自己的应用程序的起点。祝你好运!