【发布时间】:2021-09-03 20:44:49
【问题描述】:
我试图点击 Twitter API 以从 POSTMAN 检索数据,但我遇到了一个错误。
我在 Twitter 中创建了一个项目,然后创建了一个与该 twitter 项目相关联的应用程序。检索到密钥、秘密和承载令牌。我用 Bearer 令牌点击了以下端点并得到了错误
端点:https://api.twitter.com/2/tweets?ids=1261326399320715264,1278347468690915330
错误:在对 Twitter API v2 端点的请求进行身份验证时,您必须使用来自附加到项目的 Twitter 开发人员应用程序的密钥和令牌。您可以通过开发者门户创建项目。
然后我使用带有消费者密钥、消费者秘密、访问令牌和访问秘密的 OAuth 1.0 对同一端点进行热处理,并收到以下错误
{
"title": "Unauthorized",
"type": "about:blank",
"status": 401,
"detail": "Unauthorized"
}
我不明白我在那里缺少什么。有人可以帮忙吗?
由 Espoir Murhabazi 编辑:我曾尝试使用带记号的令牌进行身份验证,如 in this example 所示,但没有成功
我尝试使用 tweepy 使用的身份验证方案但也是徒劳的。我看起来好像缺少一些东西。
这是我尝试过的完整示例:
import requests
import os
import sys
from tweepy import OAuthHandler
from dotenv import load_dotenv
load_dotenv()
def get_twitter_auth():
"""Setup Twitter authentication.
Return: tweepy.OAuthHandler object
"""
try:
consumer_key = os.getenv('TWITTER_CONSUMER_KEY')
consumer_secret = os.getenv('TWITTER_CONSUMER_SECRET')
access_token = os.getenv('TWITTER_ACCESS_TOKEN')
access_secret = os.getenv('TWITTER_ACCESS_SECRET')
assert all([consumer_key, access_secret, access_token, consumer_secret])
except KeyError:
sys.stderr.write("TWITTER_* not found\n")
sys.exit(1)
auth = OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_secret)
return auth.apply_auth()
protected_url = "https://ads-api.twitter.com/9/insights/keywords/search?granularity=HOUR&keywords=developers&start_time=2021-07-02T10:00:00Z"
oauth = get_twitter_auth()
response = requests.get(url=protected_url, auth=oauth)
print(response.content, 10 * "**=|")
谢谢
【问题讨论】:
-
广告 api 也存在同样的问题