使用 API 从 Twitter 读取数据时出现 403 禁止错误

问题描述 投票:0回答:1

我有一个免费的 Twitter 帐户,创建了一个项目,创建了一个应用程序。当我使用 API 从 Twitter 中提取数据时,我被禁止:您当前只能访问 Twitter API v2 端点的子集和有限的 v1.1 端点(例如媒体发布、oauth)。如果您需要访问此端点,您可能需要不同的访问级别。

我尝试重新创建另一个 Twitter 帐户,然后又做了一遍,但问题仍然出现。我在网上搜索了一下,最近在 API 中读取 Twitter 文本时出现了很多相同的问题。然而,直到现在还没有人解决这个错误。

python pandas tweepy elixir-jason
1个回答
0
投票

/2/tweets/search/recent 在免费计划中不可用。请在此处查看免费计划中提供的 V2 端点:https://developer.twitter.com/en/portal/products/free 要搜索最近的推文,您需要升级到基本计划,目前为 100 美元/月

专业计划还具有基本计划不支持的完整存档搜索权限

这里有一个简单的Python代码,可以立即检查升级到基本计划后是否收到推文。

import requests
import os

# Replace with your Twitter Bearer Token
bearer_token = os.getenv("TWITTER_BEARER_TOKEN")

# API endpoint URL
url = "https://api.twitter.com/2/tweets/search/recent"

# Parameters for the API request
params = {
    "query": "SEARCH_WORD",
    "max_results": 20  # 10-100 in basic plan
}

# Headers with Bearer Token
headers = {
    "Authorization": f"Bearer {bearer_token}"
}

try:
    # Make the API request
    response = requests.get(url, params=params, headers=headers)
    response.raise_for_status()  # Check for any request errors

    # Parse the JSON response
    data = response.json()

    # Check if the response contains tweets
    if "data" in data:
        # Print each tweet with tweet URL
        for tweet in data["data"]:
            tweet_id = tweet["id"]
            tweet_text = tweet["text"]
            tweet_url = f"https://twitter.com/user/status/{tweet_id}"
            print(f"Tweet ID: {tweet_id}\nTweet Text: {tweet_text}\nTweet URL: {tweet_url}\n")

    else:
        print("No tweets found in the response.")

except requests.exceptions.RequestException as e:
    print(f"Error making the API request: {e}")

except json.JSONDecodeError as e:
    print(f"Error parsing the JSON response: {e}")
© www.soinside.com 2019 - 2024. All rights reserved.