コピペでできる RailsでTwitterAPIを使う ツイート編

はじめに

サービスの各種告知やプロモーションにTwitterを利用する人は多いのではないでしょうか?
Railsで作られたWebシステムからのTwitter操作が思った以上に容易に実装できるので紹介します。
今回は、文字列のツイートを解説します。

このシリーズでは、ソースをコピペするだけで機能を実装できることを目標に記述しています。

事前準備

update

ツイートを行うオペレーションは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を実行すると以下のようにツイートされます。

スクリーンショット 2018-02-08 19.05.04.png

しっかりツイートされていますねー。簡単!

update!

Twitterは同じ内容のツイートを連続で投稿できません。
また、同じ内容を連続での投稿を続けるとアプリケーションがBANされます。(経験談)

できるだけupdateではなくupdate!を使用してエラー処理をすることをオススメします。

ツイート内容が重複している場合にraiseしてくれます。

updateupdate!の動作比較

(先ほどのツイートの後に実行したものです)

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

スクリーンショット 2018-02-08 19.11.50.png

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

スクリーンショット 2018-02-08 19.11.46.png

update!はエラーがraiseされて、ツイートはされません。

終わりに

拍子抜けするほど簡略化されていて、gem作成者には頭が上がりません!
updateは第二引数に色々なオプションを指定できます。
その辺もおいおい説明できたらなと考えています!

Qiita記事で見たい方はこちら

6 thoughts on “コピペでできる RailsでTwitterAPIを使う ツイート編

  1. Tang Toc Website Tang Toc Do Website says:

    Nói đến các siêu thị sản xuất hosting trong nước ko thể nói đến một loại tên là Azdigi.
    Người đứng sau thành công thời điểm này của Azdigi là Thạch
    Phạm. 1 blogger nức tiếng mang những bài hướng dẫn tiêu dùng WordPress.
    Miễn nhiếm có “cá mập”, tốc độ luôn duy trì ở mức
    cao sở hữu mỗi lần đứt cáp là đặc điểm đặc biệt của Azdigi.
    ADG sở hữu các gói cá nhân, liên doanh và VPS cho bạn vô tư lựa tậu.
    Azdigi đặt datacenter của mình tại 2 IDC to lớn và uy tín nhất ngay
    bây giờ của Viettel và FPT. Các bạn hỗ trợ của
    Azdigi cũng sở hữu kiến thức vô cùng phải
    chăng và luôn hỗ trợ nhanh chóng sở hữu mỗi
    thắc mắc của mình. Phải nhắc thêm rằng khả năng chịu tải cao và tốc độ load trang nhanh
    của một nhà cấp dưỡng Việt Nam làm mình khá ấn tượng với
    Azdigi. Điểm trừ là mức chi phí của Azdigi với
    cao hơn so sánh các nhà phân phối khác tại Việt Nam và chỉ cho sử dụng thử 7 ngày.
    Mình cũng đã mua thử và sử dụng Azdigi,
    còn bạn thì sao?

  2. Benjamin says:

    thời trang dành cho nữ việt được xem là Một trong những nền thời trang
    độc nhất nhất. không bắt buộc nhìn ở đâu xa thì ngay từ
    lúc bước ra thế giới qua các tầm ảnh được chụp từ năm
    1945. Nét văn hóa cực kỳ đặc biệt quan trọng được khởi thủy từ đấy.
    Hai vật phẩm cam kết được giá trị vĩnh viễn đấy là chiếc áo dài kết hợp cùng với nón quai thao.
    Hòa trộn nhưng ko hòa tan nên giày dép truyền thống của việt vẫn được giữ vững theo năm tháng.

    Công chúng chỉ khởi đầu tiếp nhận các phục trang này kể từ khi những điểm giao
    xoa có mặt. mặc dù cho lớn mạnh chậm tuy
    nhiên với sự nhạy bén của tôi, thời
    trang việt nam vẫn đầy đủ đồ xinh. cộng điểm lại các thành quả mà thời trang và năng động việt nam đã đạt được suốt trong
    quãng khoảng thời gian qua để thấy rằng năng động việt đã đổi khác đa dạng ra sao.

  3. 스웨디시마사지 says:

    Aw, this was an incredibly nice post. Spending some time
    and actual effort to make a good article? but what can I say?
    I put things off a lot and never manage to get nearly anything done.

  4. Callum says:

    Người dùng ở những nơi khác nhau có các
    kinh nghiệm vô cùng khác nhau khi truy cập
    website của bạn. Sự khác nhau dựa trên khoảng
    giải pháp giữa địa điểm khách hàng và địa điểm của sản phẩm
    công nghệ chủ hosting. Lấy ví dụ có
    một website đối tác của bên tôi đặt
    tại T.P. Hồ Chí Minh. Thì 1 khách hàng truy cập
    trang web này từ Việt Nam sẽ mang tốc độ truy cập
    nhanh hơn tất cả là một người mua truy cập từ Canada.
    Sử dụng CDN, hoặc Content Delivery Network, sẽ giúp
    cho trang web của bạn tải nhanh hơn với rất nhiều khách hàng từ bất cứ đâu.
    Mỗi lắp thêm chủ CDN ở mỗi vị trí khác nhau lưu trữ dữ liệu tĩnh như ảnh hay file html của
    website. Thêm nữa, đồ vật chủ chính
    của bạn sẽ chẳng hề dùng cho các file nội dung tĩnh
    này tới người sử dụng đồng nghĩa mang việc tiết kiệm
    tài nguyên, nâng cao tốc WordPress. Dịch vụ này
    hoạt động vô cùng tốt và cải thiện đáng kể
    thời gian tải trang web. Cloudflare với gói FREE dành cho các
    trang web có lượt truy cập tốt và ko có nguồn lực tài chính khổng lồ.

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です