最近,twitter 开发者 API 尚未显示申请提升访问权限的选项。这意味着我只能使用 API v2 的免费版本。现在,我正在尝试发布一条包含一些文本和图像的推文。 create_tweet() 中有一个参数叫做 media_ids,但问题是没有 media_upload() 可供我获取媒体 id。我认为这是由于 API 更改,更具体地说,是由于取消了提升访问权限。我如何才能以路径形式发布文本和图像? 这是我的 Python 代码:
import tweepy
import keys # This is my python script that contains my dev keys.
client = tweepy.Client(consumer_key=keys.api_key,
consumer_secret=keys.api_secret,
access_token=keys.access_token,
access_token_secret=keys.access_token_secret,
bearer_token=keys.bearer_key)
def tweet(client: tweepy.Client, message: str, media_path=None):
client.create_tweet(text=message)
# How would I upload media ^^^ here from a path in the current directory?
print("Tweet tweet!")
if __name__ == "__main__":
my_message = "I love cats and dogs!"
tweet(client=client, message=my_message, media_path="pets.png")
PS:我正在使用最新版本的tweepy和python3。
我在网上查看了申请 Elevated Access 是否有任何问题,或者这只是我的问题。我找不到足够实质性的东西,所以我来到这里。
我今天早些时候从另一位用户那里找到了这段代码。非常适合我
import tweepy
from tweepy import API
consumer_key = ""
consumer_secret = ""
access_token = ""
access_token_secret = ""
def get_twitter_conn_v1(api_key, api_secret, access_token, access_token_secret) -> tweepy.API:
"""Get twitter conn 1.1"""
auth = tweepy.OAuth1UserHandler(api_key, api_secret)
auth.set_access_token(
access_token,
access_token_secret,
)
return tweepy.API(auth)
def get_twitter_conn_v2(api_key, api_secret, access_token, access_token_secret) -> tweepy.Client:
"""Get twitter conn 2.0"""
client = tweepy.Client(
consumer_key=api_key,
consumer_secret=api_secret,
access_token=access_token,
access_token_secret=access_token_secret,
)
return client
client_v1 = get_twitter_conn_v1(consumer_key, consumer_secret, access_token, access_token_secret)
client_v2 = get_twitter_conn_v2(consumer_key, consumer_secret, access_token, access_token_secret)
media_path = "C:\\YourPath"
media = client_v1.media_upload(filename=media_path)
media_id = media.media_id
client_v2.create_tweet(text="This is a test", media_ids=[media_id])