web-dev-qa-db-ja.com

tweepyの画像URLを使用して画像でTwitterのステータスを更新するにはどうすればよいですか?

これは私が使用したコードです、

#Twitter credentials
access_token = config.get('Twitter_credentials', 'access_token')
access_token_secret = config.get('Twitter_credentials', 'access_token_secret')
consumer_key = config.get('Twitter_credentials', 'consumer_key')
consumer_secret = config.get('Twitter_credentials', 'consumer_secret')

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

img = "http://animalia-life.com/data_images/bird/bird1.jpg"
api.update_with_media(img, status="Nice one")

これは私が得ているエラーです

No such file or directory

上記のコマンドでローカルディレクトリのファイルを使用する必要があることはわかっています。 update_with_mediaの使用中にURLを使用する方法はありますか?

12
karthik.zorfy

Tweepy経由でアップロードするには、ローカルファイルを使用する必要があります。最初にファイルをダウンロードするには、requestsのようなライブラリを使用することをお勧めします。

import requests
import os


def Twitter_api():
    access_token = config.get('Twitter_credentials', 'access_token')
    access_token_secret = config.get('Twitter_credentials', 'access_token_secret')
    consumer_key = config.get('Twitter_credentials', 'consumer_key')
    consumer_secret = config.get('Twitter_credentials', 'consumer_secret')

    auth = OAuthHandler(consumer_key, consumer_secret)
    auth.set_access_token(access_token, access_token_secret)
    api = API(auth)
    return api


def Tweet_image(url, message):
    api = Twitter_api()
    filename = 'temp.jpg'
    request = requests.get(url, stream=True)
    if request.status_code == 200:
        with open(filename, 'wb') as image:
            for chunk in request:
                image.write(chunk)

        api.update_with_media(filename, status=message)
        os.remove(filename)
    else:
        print("Unable to download image")


url = "http://animalia-life.com/data_images/bird/bird1.jpg"
message = "Nice one"
Tweet_image(url, message)
22
Brobin

Twythonリリース3.4.0

photo = open( '/ path/to/file/image.jpg'、 'rb')
 response = Twitter.upload_media(media = photo)
 Twitter.update_status(status = 'Checkout thisかっこいい画像! '、media_ids = [response [' media_id ']])
2
Wan2515

ステータスの更新にリンクを含めるだけではどうでしょうか。

img = "http://animalia-life.com/data_images/bird/bird1.jpg"
api.status(status="%s Nice one" % img)
0
Eric Bulloch