ayumu_aoの日記

SIerから事業会社に転職したエンジニアが技術についてや組織論、本の話、今までの体験談などなどを個人的に垂れ流しています。

続 Ruby on RailsでTwitterAPIから添付ファイル(動画・画像)付き投稿をする際のサンプル

続 Ruby on RailsでTwitterAPIから添付ファイル(動画・画像)付き投稿をする際のサンプル

その後いろいろ試した結果少しソース直したので晒しておくお

client.update_with_media

を使うとちょこちょこタイムアウトが返ってきてしまったので↓な感じにしてみた

    if attaches_files != nil
      file_type = ''
      file_type = File.extname(attaches_files.file_path)
      case 
      when file_type == ".mp4"
        file_type = 'video/mp4'
      when file_type == ".jpg" || file_type == ".jpeg"
        file_type = 'imeage/jpeg' 
      when file_type == ".gif"
        file_type = 'imeage/gif' 
      when file_type == ".png"
        file_type = 'imeage/png' 
      else
        ## XXX
      end
      image = open(attaches_files.file_path)
      file_size = File.size(image)
      init_request = Twitter::REST::Request.new(@client, :post, "https://upload.twitter.com/1.1/media/upload.json", command: 'INIT', total_bytes: file_size,media_type: file_type).perform
      media_id = bingo_init_request[:media_id]
      Twitter::REST::Request.new(@client, :post, "https://upload.twitter.com/1.1/media/upload.json", command: 'APPEND', media_id: media_id, media: image, segment_index: 0).perform
      Twitter::REST::Request.new(@client, :post, "https://upload.twitter.com/1.1/media/upload.json", command: 'FINALIZE',media_id: media_id).perform
    end