2 flat logo on transparent 256
2018-03-01

Ruby On Railsとtwitterの投稿機能を連携する

Social2112

プログラミングをしていると、フェイスブックやtwitterと連動する要望が出てきます。 今回Ruby On Railsで作成したフォームの内容をtwitterに投稿する設定を紹介します。

事前にArticleModelを作成し、string型のtitleカラムを設定します。フォーム上でtitleを入力されると同時にtwitterに投稿されるような設定を行います。 ※ArticleModelの作成解説は割愛します。

twitterへアプリ登録する

Twitter Applicant Managementへアクセス

Create New Appを選択

Create New App

アプリ名など各種登録

下記を英語で記載しcreateボタンを選択

1:Name(アプリの名前)

2:Description(アプリの説明 10文字以上で記入)

3:Website(自分のウェブサイトURL)は必須なので入力しましょう。

※ローカルURLの場合は

http://127.0.0.1:3000

を記入

createボタンを推した後にKeys and Access Tokensタブを選択し 下記をコピー

・Consumer Key(API key)

・Consumer Secret(API secret)

Keys and Access Tokens

画面下部のYour Access Tokenの Create My Access tokenを選択

Create My Access token

下記をコピー

・Access token

・Access token secret

Access token

twitter用のgemをinstall

下記をgemファイルに追記し、bundle installします。

gem 'twitter'

投稿用のcontrollerを作成する

ArticlesControllerを作成します。

class ArticlesController < ApplicationController
  before_action :twitter_client, only: [:create]

  def new
    @article = Article.new
  end

  def create
    @article = Article.new(article_params)

    if @article.save
       #\rで改行する
       @client.update("#{@article.title}\r")
      redirect_to root_path
    else
      render 'new'
    end
  end


  private
  def article_params
    params.require(:article).permit(:title)
  end

  def twitter_client
    @client = Twitter::REST::Client.new do |config|
      config.consumer_key = "自分のConsumer Keyを選択"
      config.consumer_secret = "自分のConsumer Secretを選択"
      config.access_token = "自分のAccess tokenを選択"
      config.access_token_secret ="自分のAccess token secretを選択"
    end
  end
end

rootを作成する

Rails.application.routes.draw do

  root 'articles#index'
  resources :articles

end

newフォームを設定する

views/article/new.html.slim ※フォームはslimでなくても可能

= simple_form_for(@article, url: articles_path) do |f|
  = f.input :title
  = f.submit t('btn.submit')

以上でフォームで送信した瞬間にtwitterに同じ文章が投稿されます。

アクセスキーはべた書きすると非常に危険なので、.envなどで管理する事をお勧めします。

詳細はRuby On Railsの環境変数を管理できるGem dotenv-railsの紹介の記事を御覧ください

Ruby ON Railsで作成するアプリケーション関連記事

Ruby On RailsでRedisを利用してランキング機能を実装する

Ruby On Rails4で簡易ブログを作成する1 | VIew Controller ルートを作成する

Ruby On Rails4で簡易ブログを作成する2 | editとcreateのアクションとページを作成する

Ruby On Rails4で簡易ブログを作成する3 | editページからデータをupdateさせる

Ruby On Railsでto_paramメソッドを利用し、ルートへ文字列を追加する

Ruby On Railsで外部APIを利用して、簡単なアプリケーションを作成する

前の記事
次の記事