我试图了解如何使用WhatsApp的Yowsup库。我可以发送消息,我可以收到消息,但我有兴趣获取电话号码以开始新的聊天。 换句话说,将开发一个可以与WhatsApp用户交互的计算机应用程序,现在我可以执行以下操作:
python yowsup-cli -c config.example --requestcode sms
和python yowsup-cli -c config.example --register xxx-xxx
python yowsup-cli -c config.example -s 39xxxxxxxxxx "!"
python yowsup-cli -c config.example -i 39xxxxxxxxxx
python yowsup-cli -c config.example -l
现在,当用户向我发送消息时,我可以与他/她进行互动?我想我应该从命令python yowsup-cli -c config.example -l
获取电话号码并使用此命令开始一个新的交互式对话:python yowsup-cli -c config.example -i 39xxxxxxxxxx
其中39xxxxxxxxxx是我使用上一个命令获得的用户号码。
我希望你能帮助我
答案 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本身用于开发。使用它作为构建自己的应用程序的起点。祝你好运!