Я работаю с Kontakt.io API через веб-сокеты.Первое соединение, которое я создал, было написано на JavaScript.Теперь я хочу использовать Python для создания соединения с этим API.
Я пытался реализовать код для чтения документов из этой библиотеки websocket-client и использовал этот вопрос, чтобы лучше понять, какпродолжить: Доступ к API через WebSockets с использованием Python .
Эти ссылки были очень полезны в начале.Однако после нескольких шагов один метод не получает никаких данных.
Это код, который я использую:
import socket
from websocket import create_connection, WebSocket
api_key = 'DNwJnXXXXXXXXXXXXXXXXXXX'
host = 'ovs.kontakt.io'
port = '9090'
headers = {
'Api-key': api_key,
'Accept': 'application/vnd.com.kontakt+json;version=10'
}
url = f'wss://{host}:{port}/stream?apiKey={api_key}'
ws = create_connection(url, header=headers)
После того, как этот код был выполнен, я подтвердил, что соединение былоуспешно создан:
In []: ws.connected
Out[]: True
В соответствии с вопросом, который я использовал в качестве поддержки, я обнаружил, что этот метод ws.recv()
должен извлекать данные из API с использованием некоторых параметров с помощью метода ws.send()
следующим образом:
ws.send(json.dumps({
'event': 'subscribe',
'channel': '/presence/stream/0X:8X:DX:DX:0X:5X'
}))
while True:
result = ws.recv()
print (result)
Я использовал ключи, такие как 'event' и 'channel' в payload
в соответствии с этим вопросом: Как подписаться на канал API Websocket с помощью Python?
Я являюсьпытается получить доступ к нескольким методам в API, таким как /presence/stream/:sourceId
.
Спасибо за любые советы по этому вопросу.