omniauthで認証してtwitterにupdateする。

当然rails3にて。

OmniAuth で簡単 Twitter 認証!

を見ながらtwitter認証をしてた。
無事にOauth認証できたけど、ツイートの投稿のしかたって!?

どうやら、tweetするためには、auth[‘credentials’][‘token’]とauth[‘credentials’][‘secret’] が必要らしいのでcreate_with_omniauthの部分を以下のように変更

  def self.create_with_omniauth(auth)
    create! do |twitter_user|
      twitter_user.provider = auth["provider"]
      twitter_user.uid = auth["uid"]
      twitter_user.name = auth["user_info"]["name"]
      twitter_user.nickname = auth["user_info"]["nickname"]
      twitter_user.token = auth['credentials']['token']
      twitter_user.secret = auth['credentials']['secret']
    end
  end

そして、gem ‘twitter’を手に入れて、
tweetしたい場所で以下のコード

    Twitter.configure do |config|
      config.consumer_key       = "自分のconsumer key"
      config.consumer_secret    = "自分のconsumer secret key"
      config.oauth_token        = current_user.token
      config.oauth_token_secret = current_user.secret
    end

    twitter_client = Twitter::Client.new
    twitter_client.update("ツイート内容")

うーん、先人たちの知恵助かる!

参考:Ruby で Twitter の bot を作る準備をするまでのメモ

コメント

  1. @rish314 より:

    大変参考になりました。
    ただ、私の環境では、マイグレーションファイルにusers.tokenとusers.secretをString形式で追加してやる必要がありました。

    • ttakuru88 takuru より:

      私も同じ事をしていたのですが、追加の説明を省いてました・・・。
      御指摘ありがとうございます。

タイトルとURLをコピーしました