我有一个可以免费访问的 Twitter 开发者帐户。据我了解,我可以发布推文。但我不断收到错误。
这是代码:
import tweepy, sqlite3 as db, os
# Put your Twitter API keys and stuff here
CONSUMER_KEY = ""
CONSUMER_SECRET = ""
ACCESS_TOKEN = ""
ACCESS_TOKEN_SECRET = ""
auth = tweepy.OAuth1UserHandler(
CONSUMER_KEY,
CONSUMER_SECRET,
ACCESS_TOKEN,
ACCESS_TOKEN_SECRET
)
api = tweepy.API(auth)
这是错误:
tweepy.errors.Forbidden:403 禁止 453 - 您当前有权访问 Twitter API v2 端点的子集和有限的 v1.1 端点 仅限(例如媒体发布、oauth)。如果您需要访问此端点, 您可能需要不同的访问级别。您可以在这里了解更多信息: https://developer.twitter.com/en/portal/product
我尝试重新生成所有密钥,但仍然没有帮助。
您似乎正在尝试调用Twitter API v1.1,它只能用于媒体上传。
对于推文创建,您必须调用Twitter API v2。
示例:
# Authenticate to Twitter
client = tweepy.Client(
consumer_key=CONSUMER_KEY,
consumer_secret=CONSUMER_SECRET,
access_token=ACCESS_TOKEN,
access_token_secret=ACCESS_TOKEN_SECRET
)
# Post Tweet
message = " MESSAGE "
client.create_tweet(text=message)
print("Tweeted!")
发布带有图像的推文:
# Authenticate to Twitter
client = tweepy.Client(
consumer_key=CONSUMER_KEY,
consumer_secret=CONSUMER_SECRET,
access_token=ACCESS_TOKEN,
access_token_secret=ACCESS_TOKEN_SECRET,
)
auth = tweepy.OAuth1UserHandler(
CONSUMER_KEY,
CONSUMER_SECRET,
ACCESS_TOKEN,
ACCESS_TOKEN_SECRET,
)
# Create API object
api = tweepy.API(auth, wait_on_rate_limit=True)
# Create tweet
message = " MESSAGE "
# Upload image
media = api.media_upload("tweet_img.png")
# Post tweet with image
client.create_tweet(text=message, media_ids=[media.media_id])
print("Tweeted!")
欲了解更多信息:
https://developer.twitter.com/en/docs/twitter-api
https://docs.tweepy.org/en/stable/client.html#tweepy.Client.create_tweet
我希望这有帮助。