如何使用Python接收Twitch.tv Webhooks?

时间:2018-09-05 14:52:33

标签: python webhooks discord.py twitch-api

我正在尝试制作一个简单的Discord Bot,以便在流媒体上线时发布该信息,但是我不确定在没有网站的情况下如何使用Twitch Webhooks?是否可以在Python脚本中处理所有问题?

Documentation here

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建议使用Webhooks来检查何时直播流,我只想尝试学习一下。

1 个答案:

答案 0 :(得分:0)

了解了如何对其进行排序,并认为我会在这里答复。

我必须运行网络服务器来接受数据,所以这就是我所拥有的。在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()