はじめに
サービスの各種告知やプロモーションにTwitterを利用する人は多いのではないでしょうか?
Railsで作られたWebシステムからのTwitter操作が思った以上に容易に実装できるので紹介します。
今回は、文字列のツイートを解説します。
このシリーズでは、ソースをコピペするだけで機能を実装できることを目標に記述しています。
事前準備
コピペでできる RailsでTwitterAPIを使う 準備編
update
ツイートを行うオペレーションはupdate
です。
http://www.rubydoc.info/gems/twitter/Twitter%2FREST%2FTweets:update
使い方はとてもシンプルで簡単!引数にツイートしたい文字列を渡すだけでOKです。
ちなみに改行は\n
です。
class TwitterController < ApplicationController
before_action :set_twitter_client
def update
@twitter.update("テスト1\nブログのためテストしています。(後で消します)")
render plain: "Twitter.update"
end
private
def set_twitter_client
@twitter = Twitter::REST::Client.new do |config|
config.consumer_key = "YOUR_CONSUMER_KEY"
config.consumer_secret = "YOUR_CONSUMER_SECRET"
config.access_token = "YOUR_ACCESS_TOKEN"
config.access_token_secret = "YOUR_ACCESS_SECRET"
end
end
end
/twitter/update
を実行すると以下のようにツイートされます。
しっかりツイートされていますねー。簡単!
update!
Twitterは同じ内容のツイートを連続で投稿できません。
また、同じ内容を連続での投稿を続けるとアプリケーションがBANされます。(経験談)
できるだけupdate
ではなくupdate!
を使用してエラー処理をすることをオススメします。
http://www.rubydoc.info/gems/twitter/Twitter%2FREST%2FTweets:update!
ツイート内容が重複している場合にraiseしてくれます。
update
とupdate!
の動作比較
(先ほどのツイートの後に実行したものです)
class TwitterController < ApplicationController
before_action :set_twitter_client
def update
begin
@twitter.update("テスト1\nブログのためテストしています。(後で消します)")
rescue => e
error = e
end
render plain: error || "Twitter.update"
end
private
def set_twitter_client
@twitter = Twitter::REST::Client.new do |config|
config.consumer_key = "YOUR_CONSUMER_KEY"
config.consumer_secret = "YOUR_CONSUMER_SECRET"
config.access_token = "YOUR_ACCESS_TOKEN"
config.access_token_secret = "YOUR_ACCESS_SECRET"
end
end
end
update
はエラーがraiseされず、ツイートはされません。
class TwitterController < ApplicationController
before_action :set_twitter_client
def update
begin
@twitter.update!("テスト1\nブログのためテストしています。(後で消します)")
rescue => e
error = e
end
render plain: error || "Twitter.update"
end
private
def set_twitter_client
@twitter = Twitter::REST::Client.new do |config|
config.consumer_key = "YOUR_CONSUMER_KEY"
config.consumer_secret = "YOUR_CONSUMER_SECRET"
config.access_token = "YOUR_ACCESS_TOKEN"
config.access_token_secret = "YOUR_ACCESS_SECRET"
end
end
end
update!
はエラーがraiseされて、ツイートはされません。
終わりに
拍子抜けするほど簡略化されていて、gem作成者には頭が上がりません!
update
は第二引数に色々なオプションを指定できます。
その辺もおいおい説明できたらなと考えています!
ブログ記事で見たい方はこちら → コピペでできる RailsでTwitterAPIを使う ツイート編