我想消费以下 websocket weather api .
我尝试调整 following examples但我没有取得任何进展。
import asyncio
import websockets
async def hello():
async with websockets.connect('ws://ws.weatherflow.com/swd/data') as websocket:
await websocket.send({
"type":"listen_start",
"device_id":1110,
"id":"2098388936"
})
greeting = await websocket.recv()
print(greeting)
asyncio.get_event_loop().run_until_complete(hello())
如何在Python中使用websocket api?那就是如何获取源源不断的天气信息呢?
最佳答案
似乎缺少 api_key 参数:
来自SmartWeather documentation :
Websocket
- 打开 WebSocket 连接
wss://ws.weatherflow.com/swd/data?api_key=20c70eae-e62f-4d3b-b3a4-8586e90f3ac8
通过 websocket 连接发送 JSON 消息以开始监听来自演示设备的观察结果。发送此消息后,您连接的 websocket 客户端将每分钟收到一条新的观察 JSON 消息。
{ "type":"listen_start", "device_id":1110, "id":"random-id-12345"}
我使用以下代码让它工作:
import asyncio
import websockets
async def hello():
async with websockets.connect('wss://swd.weatherflow.com/swd/data?api_key=20c70eae-e62f-4d3b-b3a4-8586e90f3ac8') as websocket:
await websocket.send('{"type":"listen_start", "device_id":1110,"id": "2098388936"}')
greeting = await websocket.recv()
print(greeting)
asyncio.get_event_loop().run_until_complete(hello())
注意,根据文档,这个API key是为了快速入门。不要在您的应用程序中使用此 key 。
关于python - 如何在Python中使用websocket api?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45548350/