Как я могу получить Twitch.tv Webhooks на Python?
Я пытаюсь создать простой Discord Bot, который будет публиковать сообщения, когда стример будет запущен, но я не уверен, как использовать веб-зацепы Twitch без веб-сайта? Можно ли обработать все это в скрипте Python?
webhookurl = "https://api.twitch.tv/helix/webhooks/hub/"
payload = {"hub.mode":"subscribe",
"hub.topic":"https://api.twitch.tv/helix/users/streams?user_id=27942990",
"hub.callback":url,
"hub.lease_seconds":"0"
}
header = {"Content-Type":"application/json", "Client-ID": clientid}
req = requests.post(url, headers=header, data = payload)
resp = req.json()
print(resp)
Не уверен, что указать в качестве URL обратного вызова, поскольку у меня нет веб-сайта для ответа.
Я использую Python 3.6
Примечание: я могу выяснить, является ли канал живым, но Twitch рекомендует веб-крючкам проверить, когда поток начнет работать, и я просто хочу попытаться узнать это.
1 ответ
Узнал, как это отсортировать (вроде) и подумал, что я отвечу здесь.
Я должен запустить веб-сервер, чтобы принять данные, так что это то, что у меня есть. В функции POST web.data является ответом, который говорит, является ли поток живым / нет и т. Д.
import web
urls = ('/.*', 'hooks')
app = web.application(urls, globals())
class hooks:
def POST(self):
data = web.data()
print("")
print('DATA RECEIVED:')
print(data)
print("")
return 'OK'
def GET(self):
try:
data = web.input()
data = data['hub.challenge']
print("Hub challenge: ", data)
return data
except KeyError:
return web.BadRequest
if __name__ == '__main__':
app.run()