【问题标题】:Add multiple images to a tweet with python and twitterApi?使用 python 和 twitterApi 将多个图像添加到推文中?
【发布时间】:2014-08-09 15:42:32
【问题描述】:

您好,我一直在尝试使用 python 中的 twitterAPI 模块将四张图片添加到一条推文中 - 不幸的是,下面的这段代码只渲染了推文中数据中的一张图片。有人可以指出我在推文中附加四张图片的正确方向吗?我的代码在下面(减去导入和密钥)

api = TwitterAPI(CONSUMER_KEY, CONSUMER_SECRET, ACCESS_KEY, ACCESS_SECRET)

output_message = "Four Cool Images:"
data = ""
for x in range(0, 4):`enter code here`
   filename = "/temp/images/image" + x + ".jpg"   # file name of image.
    file = open(filename, 'rb') 
    stream = file.read()
    data = data + stream

r = api.request('statuses/update_with_media', {'status':output_message}, {'media[]':data})
print(r.status_code)

【问题讨论】:

    标签: python twitter tweets


    【解决方案1】:

    参数列表media_ids必须是字符串,media_ids用逗号隔开。

    【讨论】:

      【解决方案2】:

      'statuses/update_with_media' 已弃用。以下是首选方法。

      from TwitterAPI import TwitterAPI
      
      TWEET_TEXT = 'some tweet text'
      IMAGE_PATH = './some_image.png'
      
      api = TwitterAPI(CONSUMER_KEY,CONSUMER_SECRET,ACCESS_TOKEN_KEY,ACCESS_TOKEN_SECRET)
      
      # STEP 1 - upload image
      file = open(IMAGE_PATH, 'rb')
      data = file.read()
      r = api.request('media/upload', None, {'media': data})
      print('UPLOAD MEDIA SUCCESS' if r.status_code == 200 else 'UPLOAD MEDIA FAILURE')
      
      # STEP 2 - post tweet with a reference to uploaded image
      if r.status_code == 200:
          media_id = r.json()['media_id']
          r = api.request('statuses/update', {'status':TWEET_TEXT, 'media_ids':media_id})
          print('UPDATE STATUS SUCCESS' if r.status_code == 200 else 'UPDATE STATUS FAILURE')
      

      【讨论】:

      • 这很清楚 - 谢谢。我必须将 TwitterAPI 升级到最新版本,然后循环 4 张图片,检索 media_ids 并将它们放在一个字符串中以发送所有四张图片。谢谢!
      【解决方案3】:

      我遇到了同样的问题,所以我在上面修改了一些代码,它工作得很好(如果不是很清楚,请原谅...)我的图像只是命名为 1.jpg、2.jpg ...

      from TwitterAPI import TwitterAPI
      
      api = TwitterAPI(CONSUMER_KEY,CONSUMER_SECRET,ACCESS_TOKEN_KEY,ACCESS_TOKEN_SECRET)
      media_ids = ''
      
      for i in range(2): #Set 1 to 4 images (exemple with 2)
          TWEET_TEXT = 'some tweet text'
          IMAGE_PATH = f'{i}.jpg'
          file = open(IMAGE_PATH, 'rb')
          data = file.read()
          r = api.request('media/upload', None, {'media': data})
          print('UPLOAD MEDIA SUCCESS' if r.status_code == 200 else 'UPLOAD MEDIA FAILURE')
      
      
          if r.status_code == 200:
              if i == 0:
                  media_ids += str(r.json()['media_id'])
              else:
                  media_ids = media_ids + ',' + str(r.json()['media_id'])
      
      #POST IMAGES
      r = api.request('statuses/update', {'status':TWEET_TEXT, 'media_ids':media_ids})
      print('UPDATE STATUS SUCCESS' if r.status_code == 200 else 'UPDATE STATUS FAILURE')
      

      【讨论】:

        猜你喜欢
        • 2014-01-12
        • 2018-11-12
        • 1970-01-01
        • 2015-10-25
        • 1970-01-01
        • 2015-06-02
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多