1

prepare_access_tokenTwitter api にアクセスして読み取り、書き込み機能を実行するために呼び出される関数を使用しています。

以下は、Twitterメッセージを更新するために使用するコードです


@tweet = "Rails Rails"
@access_token = prepare_access_token(@oauth_token, @oauth_secret)
@response = @access_token.request(:post, "http://api.twitter.com/1/statuses/update.json", :status => @tweet)

def prepare_access_token(oauth_token, oauth_token_secret)

  consumer_key = Rails.application.config.consumer_key
  consumer_secret = Rails.application.config.consumer_secret  

  consumer = OAuth::Consumer.new(consumer_key, consumer_secret,
    { :site => "http://api.twitter.com",
      :scheme => :header
    })
  # now create the access token object from passed values
  token_hash = { :oauth_token => oauth_token,
                 :oauth_token_secret => oauth_token_secret
               }
  access_token = OAuth::AccessToken.from_hash(consumer, token_hash )
  return access_token
end

これは、画像を添付せずにステータスを更新する場合に機能しますが、以下のように画像を添付してステータスを更新しようとすると

@access_token = prepare_access_token(@oauth_token, @oauth_secret)
@response = @access_token.request(:post,  "https://upload.twitter.com/1/statuses/update_with_media.json"  , :media => $image , :status  => "Status")

それは次のように示します{"request":"/1/statuses/update_with_media.json","error":"Error creating status."}

私は何を間違っていますか?提案してください。

4

2 に答える 2

2

consumer:site については、 http://api.twitter.comではなくhttp://upload.twitter.comに設定してみてください。API サイトはメディアのアップロードをサポートしていません。

于 2012-10-01T07:36:16.317 に答える
0

Twitter API に対する他の REST メソッドとは異なり、このメソッドにはContent-Typetoを設定する必要があります。multipart/form-dataPOST https://upload.twitter.com/1/statuses/update_with_media.json

于 2012-07-09T13:23:01.283 に答える