通过 Python 访问 Twitch API 时出现问题
Issues accessing Twitch API through Python
我正在尝试访问 Twitch API 以简单请求频道详细信息。尽管输入了我成功生成的 OAUTH 代码,但我始终遇到 401 Unauthorized 错误。我正在使用文档中的格式:
GET 'https://api.twitch.tv/helix/search/channels?query=a_seagull' \
--header 'client-id: wbmytr93xzw8zbg0p1izqyzzc5mbiz' \
--header 'Authorization: Bearer 2gbdx6oar67tqtcmt49t3wpcgycthx'
这是网站上写的。我已将其翻译成 Python:
import os
import requests
URL = "https://id.twitch.tv/oauth2/token"
CLIENT_ID = os.environ['CLIENT_ID']
CLIENT_SECRET = os.environ['CLIENT_SECRET']
GRANT_TYPE = "client_credentials"
PARAMS = {
"client_id": CLIENT_ID,
"client_secret": CLIENT_SECRET,
"grant_type": GRANT_TYPE
}
r1 = requests.post(url = URL, params = PARAMS)
token = r1.json()["access_token"]
URL2 = "https://api.twitch.tv/helix/search/channels?query=reisu1337"
PARAMS2 = {
"client_id": CLIENT_ID,
"authorization": f"Bearer {token}"
}
r2 = requests.get(url = URL2, params = PARAMS2)
data = r2.json()
获取授权令牌的代码的第一部分工作正常,但在输入到后半部分时不被接受,出现以下错误:
{'error': 'Unauthorized', 'status': 401, 'message': 'OAuth token is missing'}
我的问题是如何让 API 接受授权令牌并处理我的请求。在此先感谢您的帮助:)
编辑 - 将 link 回复到 run/fork - https://replit.com/@reisu1337/TwitchAPICall
headers = {
'Client-ID': client_id,
'Authorization': 'Bearer ' + keys['access_token']
}
print(headers)
stream = requests.get('https://api.twitch.tv/helix/streams?user_login=' + streamer_name, headers=headers)
您需要传递 headers,而不是参数。
我正在尝试访问 Twitch API 以简单请求频道详细信息。尽管输入了我成功生成的 OAUTH 代码,但我始终遇到 401 Unauthorized 错误。我正在使用文档中的格式:
GET 'https://api.twitch.tv/helix/search/channels?query=a_seagull' \
--header 'client-id: wbmytr93xzw8zbg0p1izqyzzc5mbiz' \
--header 'Authorization: Bearer 2gbdx6oar67tqtcmt49t3wpcgycthx'
这是网站上写的。我已将其翻译成 Python:
import os
import requests
URL = "https://id.twitch.tv/oauth2/token"
CLIENT_ID = os.environ['CLIENT_ID']
CLIENT_SECRET = os.environ['CLIENT_SECRET']
GRANT_TYPE = "client_credentials"
PARAMS = {
"client_id": CLIENT_ID,
"client_secret": CLIENT_SECRET,
"grant_type": GRANT_TYPE
}
r1 = requests.post(url = URL, params = PARAMS)
token = r1.json()["access_token"]
URL2 = "https://api.twitch.tv/helix/search/channels?query=reisu1337"
PARAMS2 = {
"client_id": CLIENT_ID,
"authorization": f"Bearer {token}"
}
r2 = requests.get(url = URL2, params = PARAMS2)
data = r2.json()
获取授权令牌的代码的第一部分工作正常,但在输入到后半部分时不被接受,出现以下错误:
{'error': 'Unauthorized', 'status': 401, 'message': 'OAuth token is missing'}
我的问题是如何让 API 接受授权令牌并处理我的请求。在此先感谢您的帮助:)
编辑 - 将 link 回复到 run/fork - https://replit.com/@reisu1337/TwitchAPICall
headers = {
'Client-ID': client_id,
'Authorization': 'Bearer ' + keys['access_token']
}
print(headers)
stream = requests.get('https://api.twitch.tv/helix/streams?user_login=' + streamer_name, headers=headers)
您需要传递 headers,而不是参数。