わずか数行のコードで利用できちゃう!Twitter APIを活用してみた。

まさくに


わずか数行のコードで利用できちゃう!Twitter APIを活用してみた。

こんにちは、バックエンドエンジニアのまさくに(lig_masakuni)です。

毎日毎日山のように生まれる疑問のために検索を重ね、あらゆるデータをこねくり回し、最終的に書き上がる html、json、ときどき xml という戦果と戦火。そう、僕らは開発における守りの要、バックエンドエンジニア。僕らの前には整形を待つデータがあり、僕らの後ろには動かしがたい納期がある。バックはエンド。いつだって文字どおりの崖っぷち。ハッハッハ。本日も皆様、お疲れ様です。

さて本稿では開発のスケジュールを左右しかねない外部サービスの連携において、その API が公開されているとき、代表的な機能を最速で利用し、最速で雰囲気を掴んだような気になることがテーマです。そう、API の「 hello, world 」をやろうってこと。

第 1 回目は現代における Web サービス API の代表格である Twitter の API を今時、今さら触ります。今日は難しいこと抜きにしてサ、まずは Twitter API が動くとこ、見てってくださいよ。

▼目次

とにかくAPIを実行してみる

APIへ接続した環境

  • macOS Sierra: 10.12.3
  • 今回の言語は ruby: gemとbundler を使用
  • iTerm2 で実行
$ ruby -v
ruby 2.3.3p222 (2016-11-21 revision 56859) [x86_64-darwin15]
$ gem -v
2.5.2
$ bundle -v
Bundler version 1.13.6

用意した数少ないコード

今回は 2 つのコードを用意します。なお、ソースコードは ここ にも置きました。

 

▼Gemfile

source 'https://rubygems.org'

gem 'twitter'

 

▼touch_twitter.rb

require "twitter"

# ご自身のアカウント情報(後述)
client = 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

client.update("聞こえるかー! アスナー! 俺だー!")

 

実行してみる

下記コマンドで実行します。

 

$ bundle install --path vendor # ライブラリをインストールします
$ bundle exec ruby touch_twitter.rb # touch_twitter.rbを実行します

 

何も出力していないので、基本何も出力されないと思います。出力されたら、たぶんそれはエラーです。

 

実行結果

 
動いたー。

 

実行するための周辺情報

先人達の偉大な智慧を借り、わずか数行のコードで Twitter API を利用することができました。さて、以降は冒頭のソースコードを実行させるための周辺情報を少しだけ書きたいと思います。

たいてい API を利用するにあたって、その流儀というか約束事を知る必要があり、たいていその世界観に慣れるのに時間がかかります。「ツイートする」というシンプルな実行のためには、Twitter の API へユーザー認証をする必要があります。

ユーザー認証をするためにはコンシューマーキーとその鍵、および、アクセスキーとその鍵が必要になります。何言うてんのって感じですね。サマルトリアの王子が見つからずに DQ2 を断念した僕には辛いです。

 

図に表すと上記のようになります。実際には Twitter がユーザーへ「アクセスキーを渡してもいいですか?」とは聞いてきませんが、例えば世の中にいくつも存在する Twitter のアプリケーションに「 Twitter へ呟く許可を与えた」ご経験が皆様にもあるかと思います。それ。そのとき、Twitter がアプリケーションへアクセスキーを渡しています。

アプリケーションがそのアクセスキーを渡すことで、アプリケーションがあなたに変わって、あなたのタイムラインへ呟いたり、あなたのプロフィールを確認したりできるようになります。ときどき Twitter の変なアプリケーションに許可を与えちゃって大変なことになってる方もいますが、そういう権限を与えちゃったってことですね。

各トークンや鍵の意味合いは以下のとおりです。

コンシューマーキー アプリケーションごとのID。
コンシューマーシークレット アプリケーションであることを証明する鍵。
アクセストークン そのユーザーのアプリケーションごとのトークン。このトークンとアクセスシークレットを使って、そのアプリケーションは一定の実行が許可される。同一のユーザーであれば重複することはないので、アプリケーションからするとユーザーのIDとしても扱える。
アクセスシークレット そのユーザーであることを証明する鍵。

さて、整理すると冒頭のソースコードを動かすためには以下の手順が必要になります。

  1. Twitter のアカウントを取得する
  2. アプリケーションを作成する
  3. コンシューマーキーを取得する
  4. アクセストークンを取得する

 

Twitterのアカウントを取得する

もし、ここまで読んでおいて、Twitter のアカウントを取得されてないという根気強い方がいらしたら、ぜひ アカウントを取得 してみてくださいね。140 字でフォロワーとコミュニケーションができる楽しいサービスです。

 

アプリケーションを作成する

今回は「 Life is bot 」というアプリケーションを作成して呟いてみました。

下記の手順でアプリケーションの作成ができます。場合によっては Twitter に二段階認証が設定されている必要があるようです(自分は必要でしたが、時期によるでしょう)。

  1. https://apps.twitter.com/ へアクセスする。
  2. 「 Create New App 」からアプリケーションの作成を開始する。

     

  3. 下記のようにアプリケーションの情報を入力する。
  4. 「 Create your Twitter application 」でアプリケーションが作成されます。

 

コンシューマーキーを取得する

アプリケーションが作成できたら、アプリケーションの情報が確認できるページが開いているはずです。上部の「 Keys And Access Tokens 」のタブを開きましょう。すでにコンシューマーキーが与えられているはずです。

 

そのなかから「 Consumer Key(API Key)」と「 Consumer Secret(API Secret)」を、ソースコード上へコピペしてください。

 

アクセストークンを取得する

さて、ユーザーの許可を表すアクセストークンで、上の図の方では「ユーザーに許可をもらう」と書きましたが、あれはいったん忘れていただきます。

冒頭のソースコードは、コンシューマーキーもアクセストークンもすべて露わになっている場合に実行できるものです。 「ユーザーに許可をもらう」ためには、コールバックページを作るとか、リクエストトークンを取得するとか、さらに手の込んだことが必要で説明も込み入るので、この「雰囲気を知る」本稿はバッサリ切り落とします。機会があれば書かせてください。でもググっていただいた方が早いと思う。

じゃあどうやってアクセストークンを取得するのかと申しますと、「今ログインしてアプリケーションを作成した自分のアクセストークン」に限り、現在ご覧の管理画面から取得できます。

「 Keys And Access Tokens 」の下方、「 Create my access token 」のボタンを押してください。「 Access Token 」と「 Access Token Secret 」が表示されましたよね。

これを冒頭のソースコードに書き込んで実行していただければ、ツイートすることができたかと思います。「動いたー」という安心感と感動は何度味わってもいいものですね。呟く内容とかアカウントにはご注意ください。保証できません。

 

まとめ

DSC06660

あー Twitter たーのしー!

サービスとして資金難とか身売りの話も何年も前から聞きますが、Twitter 好きの僕としては末永く続いて欲しいサービスとなります。

今回お伝えできたのは、Twitter API のほんの入口、ツイートする以外にもさまざまな機能が提供されていて、各言語ライブラリも豊富です。ぜひググってみてください。

また、ツイートするにしても情報を取得するにしても、API にはリミットが設けられています。こちらにもご注意ください。いずれにせよ、SNS として遊ぶにしても、開発で遊ぶにしても、一番気軽であり続けられるよう願いつつ、Twitter API のご紹介はここまでです。

 

まさくに
この記事を書いた人
まさくに

バックエンドエンジニア

関連記事