Python调用Instagram Graph API报错:缺少client_id参数
问题原因及解决办法
1. 字典语法错误
你的payload字典中,client_id键值对末尾缺少逗号,这会导致Python语法错误,同时也会影响参数的正常传递。修正后的字典:
payload = { 'grant_type': 'fb_exchange_token', 'client_id': '1234567890123456', # 补充缺失的逗号 'client_secret': '1234abcd1234abcd1234abcd', 'fb_exchange_token':'abcd1234' }
2. GET请求参数传递方式错误
Facebook的oauth/access_token接口要求GET请求的参数放在URL查询字符串中,而你使用requests.get的data参数时,数据会被放入请求体里,接口无法读取到这些参数,因此返回"Missing client_id"错误。
正确做法是改用params参数传递:
r = requests.get(refresh_token_url, params=payload)
修改后的完整脚本
import requests refresh_token_url = 'https://graph.facebook.com/v19.0/oauth/access_token' payload = { 'grant_type': 'fb_exchange_token', 'client_id': '1234567890123456', 'client_secret': '1234abcd1234abcd1234abcd', 'fb_exchange_token':'abcd1234' } r = requests.get(refresh_token_url, params=payload) # 可打印请求URL确认参数是否正确拼接 print(r.url) print(r.json())
这样参数会被正确拼接到URL查询字符串中,和你在Postman中发送请求的逻辑一致,就能正常获取长效访问令牌了。
内容的提问来源于stack exchange,提问作者riccardo
相关产品推荐
相关产品推荐

