【发布时间】:2021-07-03 17:29:09
【问题描述】:
我正在尝试制作一个 Discord 机器人,以在您键入“$live”时检查 Twitch 上的流媒体是否在线,但我无法让它工作。我正在使用 Discord.py。我的主要问题是使用标头调用 API 来提供我的授权。此外,使用我目前编写的代码,它会发送此错误。我的主要问题是,我怎样才能提供授权密钥,这样它既不会给出下面的错误,也不会说需要 OAuth。蒂亚!
忽略 on_message 中的异常 回溯(最近一次通话最后): _run_event 中的文件“/opt/virtualenvs/python3/lib/python3.8/site-packages/discord/client.py”,第 343 行 等待 coro(*args, **kwargs) 文件“main.py”,第 19 行,on_message 响应 = requests.get(url, headers=headers) 文件“/opt/virtualenvs/python3/lib/python3.8/site-packages/requests/api.py”,第 76 行,在 get 返回请求('get', url, params=params, **kwargs) 文件“/opt/virtualenvs/python3/lib/python3.8/site-packages/requests/api.py”,第 61 行,在请求中 返回 session.request(method=method, url=url, **kwargs) 文件“/opt/virtualenvs/python3/lib/python3.8/site-packages/requests/sessions.py”,第 528 行,在请求中 prep = self.prepare_request(req) 文件“/opt/virtualenvs/python3/lib/python3.8/site-packages/requests/sessions.py”,第 456 行,在 prepare_request p.准备( 准备中的文件“/opt/virtualenvs/python3/lib/python3.8/site-packages/requests/models.py”,第 317 行 self.prepare_headers(标题) 文件“/opt/virtualenvs/python3/lib/python3.8/site-packages/requests/models.py”,第 449 行,在 prepare_headers 对于 headers.items() 中的标题: AttributeError: 'set' 对象没有属性 'items'
代码如下。
import discord
import os
import requests
client = discord.Client()
url = 'https://api.twitch.tv/helix/search/channels?query=whyoscar'
headers = {'client_id:' '*******************', 'Authorization:' 'Bearer **********************'}
@client.event
async def on_ready():
print('We have logged in as {0.user}'.format(client))
@client.event
async def on_message(message):
if message.author == client.user:
return
if message.content.startswith('$live'):
response = requests.get(url, headers=headers)
details = response.json()
await message.channel.send(details)
client.run(os.getenv('TOKEN'))
【问题讨论】:
标签: python discord.py twitch