使用 Python 或 JavaScript 如何获取 WhatsApp 的 WebSocket 连接?

6

我从 Chrome 网络选项卡中复制了 Websocket 请求并尝试将其用作 Fetch,但显然不起作用,因为 Fetch 仅支持 HTTP(S)

是否有一种方法可以通过 PythonJavaScript 连接到 WhatsApp 的 Websocket 连接?


可能是CORS策略阻止了这个。只有从“web.whatsapp.com”到“wss://web.whatsapp.com/ws”建立ws连接才可能。 - Marc
@Marc 我在同一域上尝试了,但没有成功。我确定与cookie或会话身份验证有关的内容应该包含在标头中(有wa_csrf,但js不允许在websocket连接中发送自定义标头)。 - Masked Man
3个回答

0

我不确定这是否有帮助,您可以在node.js中使用WebSocket。同样,在Python中也可以使用socketio模块。

我在本地机器上尝试了一下,但是套接字服务器抛出了意外的 403 禁止错误。

无论如何,以下是示例:

const WebSocket = require('ws')
var socket = new WebSocket("wss://web.whatsapp.com/ws")

socket.onopen = (e)=>console.log("connected")

socket.onmessage = (e)=>console.log("msg",e)

socket.onerror = (e)=>console.log("error",e)

WebSocket Github 仓库链接


这会引发“403 Forbidden”错误,因为您需要对WhatsApp进行身份验证。 - Masked Man

0

你可以使用以下方法在Chrome中连接到socket:

let socket = new WebSocket("wss://web.whatsapp.com/ws");


socket.onopen = (e)=>console.log("connected")

socket.onmessage = (e)=>console.log("msg",e)

socket.onerror = (e)=>console.log("error",e)

但你无法监听消息。


这将导致 403 Forbidden 错误,因为您需要对 WhatsApp 进行身份验证。 - Masked Man

0

你需要使用flask-socketio和javascript socket库。步骤是连接,然后将数据发送到所提到的函数。你需要阅读文档,因为它非常简单。


哦,伙计,你没有仔细阅读问题。我知道如何在任一语言中使用Websockets,但不知道如何连接到WhatsApp并授权自己以获取事件流。 - Masked Man
为什么选择“flask-socketio”? - Marc
这样,您将拥有一个连续的服务器,使用Python Flask作为Web服务器来监听它。 - abhishek kumar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接