无法通过 POSTMAN 访问 Twitter API

sac*_*sac 6 twitter postman

我试图使用 Twitter API 从 POSTMAN 检索数据,但遇到错误。

我在 Twitter 中创建了一个项目,然后创建了一个与 Twitter 项目关联的应用程序。检索到密钥、秘密和承载令牌。我使用不记名令牌点击以下端点并收到错误

端点:https://api.twitter.com/2/tweets? ids=1261326399320715264,1278347468690915330

错误:验证对 Twitter API v2 端点的请求时,您必须使用附加到项目的 Twitter 开发人员应用程序中的密钥和令牌。您可以通过开发者门户创建项目。

然后我使用带有 Consumer Key、Consumer Secret、Access Token 和 Access Secret 的 OAuth 1.0 热相同的端点,并收到以下错误

{
    "title": "Unauthorized",
    "type": "about:blank",
    "status": 401,
    "detail": "Unauthorized"
}
Run Code Online (Sandbox Code Playgroud)

我不明白我在那里缺少什么。有人可以帮忙解决这个问题吗?

由 Espoir Murhabazi 编辑:我尝试使用 Beared 令牌进行身份验证,如本示例所示,但徒劳无功

我尝试使用 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 * "**=|")
Run Code Online (Sandbox Code Playgroud)

谢谢

Dar*_*ght 0

承载令牌是 OAuth 2.0 中使用的主要访问令牌类型。承载令牌是一个不透明的字符串,对于使用它的客户端没有任何意义。不要使用不记名令牌,而是尝试使用 access_token 和 access_token_secret。欲了解更多信息,请参阅