1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

RailsでTwitterAPIを使って簡単にツイートする方法

1
Posted at

はじめに

こんにちは^^
こちらの記事ではTwitterAPIを使って、ツイートをしてみたいと思います。
この記事は、コントローラーを読み込んでツイートするものになります。
Formを踏ませると手順が増えますので、使っておりません。Formからツイートする方法は別の記事で公開いたします。

Gemfile

まずはGemfileに下記を記述します。
そして bundle install コマンドを打ってください。

source 'https://rubygems.org'
git_source(:github) { |repo| "https://github.com/#{repo}.git" }

ruby '2.4.2'
.
..
...
....(省略します)

gem 'twitter'

Keyを記述し、ツイートを投稿する

ご自身で作成してあるいずれかのControllerに下記を記述してください。
TwitterAPIを使って、ツイートするためには、updateメソッドを使用します。
updateメソッドの第一引数にツイート内容を指定します。
ツイートの文字列を指定する際には、140字の制限がございますのでお気をつけください。
Topコントローラーのindexアクションを読み込むとクライアントに指定したアカウントでツイートされていると思います^^

class TopController < ApplicationController
  def index
    # Twitterのクライアントを作成する。
    client = Twitter::REST::Client.new do |config|
      config.consumer_key        = "**********"
      config.consumer_secret     = "**********"
      config.access_token        = "**********"
      config.access_token_secret = "**********"
    end

    # ツイートする
    @client.update("API使ってツイートしました!")
  end
end

画像付きツイートも

画像付きツイートをTwitterAPIから行う場合は、 update_with_media メソッドを使用します。
update_with_mediaメソッドでは、第一引数にツイート内容、第二引数に画像のパスを指定します。画像を指定する際には、Railsのopenメソッドを使用しています。このopenメソッドは、seed.rbに画像のテストデータを作りたい場合にも使用できますので試してみてください^^
Rails.rootは現在使用しているRailsアプリケーションのパスを自動で読み込んでくれます。Macの場合はRails.rootを指定すると、/Users/ユーザー名/Railsアプリケーション名というパスが読み込まれると思います。

class TopController < ApplicationController
  def index
    # Twitterのクライアントを作成する。
    client = Twitter::REST::Client.new do |config|
      config.consumer_key        = "**********"
      config.consumer_secret     = "**********"
      config.access_token        = "**********"
      config.access_token_secret = "**********"
    end

    # 画像付きツイートをする
    @client.update_with_media(API使って画像付きツイートしました!, open("#{Rails.root}/app/assets/images/solect.png"))
  end
end

ツイート機能のAPI制限

こちらのツイート機能には2019年8月25日時点で、3時間に300回までという制限がございます。(~時点と記述しているのは、こういったAPIは制限がちょくちょく変わるためです。数年前はもっと制限が緩かったです。。)

終わりに

以上がTwitterのAPIでツイートをする方法です。
初めて実装した時は、ツイートをするだけでも苦労したことを覚えています。。

プログラミングの勉強をしている方、独学で勉強している方など、少しでも助けになれればと思います^^

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?