Yowsup WhatsApp获得电话号码

luc*_*841 8 python whatsapp

我正在尝试了解如何将Yowsup库用于WhatsApp.我可以发送消息,我可以收到它,但我有兴趣获得电话号码开始新的聊天.换句话说,将开发一个可以与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

现在,当用户向我发送消息时,我可以与他/她进行互动?我想我应该从命令中获取电话号码python yowsup-cli -c config.example -l并使用此命令开始新的交互式对话:python yowsup-cli -c config.example -i 39xxxxxxxxxx其中39xxxxxxxxxx是我使用上一个命令获得的用户号码.我希望你能帮帮我

jhn*_*wsk 5

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

如果查看yowsup-cli源代码,您会看到它实际上导入了包含的示例以提供命令行消息功能.

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

wa = WhatsappListenerClient(args['keepalive'], args['autoack'])
wa.login(login, password)
Run Code Online (Sandbox Code Playgroud)

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

self.signalsInterface.registerListener("message_received", self.onMessageReceived)
Run Code Online (Sandbox Code Playgroud)

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

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))
Run Code Online (Sandbox Code Playgroud)

您可以在此信号jid参数列表中找到您所需的电话号码.如果您希望在他向您发送消息后与用户进行互动,我猜您应该将您自己订户中的jid或电话号码存储到此信号中.

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