Как получить веб-перехватчики Twitch.tv на 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 рекомендует веб-перехватчики для проверки, когда поток выходит в эфир, и я просто хочу попробовать изучить это.


person Masonator    schedule 05.09.2018    source источник
comment
Что ж, вам нужно будет запустить веб-сервер и сделать его доступным через Интернет для получения событий веб-ловушек.   -  person deceze♦    schedule 05.09.2018


Ответы (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()
person Masonator    schedule 07.09.2018