使用 Tweepy 从 Twitter 检索直接消息图像

时间:2021-06-02 08:23:07

标签: python api twitter tweepy

我正在制作一个脚本来检索某人在 Direct Message 上发送的图像。 我需要拿媒体地址来下载图片(稍后我会制作下载图片的代码)

这是检索图像的代码


auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)


api = tweepy.API(auth, wait_on_rate_limit=True)
try:
    api.verify_credentials()
    print("Authentication OK")
except tweepy.errors.TweepyException as e:
    print("Error during authentication :", e.message[0]['code'])

messages = api.list_direct_messages(count=3)

for message in reversed(messages):
    sender_id = message.message_create["sender_id"]
    recipient_id = message.message_create["target"]["recipient_id"]
    text = message.message_create["message_data"]["text"]
    sender_url = message.message_create["message_data"]["attachment"]

checkString = text.find("post!")

if int(recipient_id) == int(myUserID):   
    if checkString == -1:
        userText = "Please put post! in the beginning of your tweet"
        for media in sender_url:
            urlImage = media.media["media_url_https"]

        print("LINK :", urlImage)       
        print(f"Message does not contain post!, message : {text}")
        try:
            api.send_direct_message(sender_id, userText)
        except tweepy.errors.TweepyException as e:
            print("Error during send direct message :", e.message[0]['code'])
    else:
        print(f"Message contain post!, message : {text}")
        try:
            api.update_status(text)
            print("Tweet Success")
        except tweepy.errors.TweepyException as e:
            print("Error during post tweet :", e.message[0]['code'])

但结果是

sender_url = message.message_create["message_data"]["attachment"]
KeyError: 'attachment'

真正的结果一定是

LINK: https://p.twimg.com/XXXXXXXXXXXXXXX

谁能帮我解决这个问题? 主要问题是我只想从从 Direct message 收到的媒体中获取媒体 URL

谢谢!

0 个答案:

没有答案
相关问题