TwitterをAPIで操作しよう、となるまで

ブログ

Blog
  1. ホームページ制作・運営はアウラ:ホーム
  2. ブログ
  3. TwitterをAPIで操作しよう、となるまで

TwitterをAPIで操作しよう、となるまで

TwitterをAPIで操作しよう、となるまで

先日、とある案件のミーティングにて、

ディレクター仁木さん、Twitterで特定のキーワードが含まれたツイートのタイムラインをホームページに埋め込みたいんだけれど、出来るかな?

仁木なるほど。(Twitterならウィジェット機能でそういうのあるだろうし簡単に出来るでしょ、知らんけど)大丈夫ですよ。

というやりとりがありました。

Twitterはもう13年も続いている長者SNSです。そのTwitterがそんな需要の高そうな機能を用意していないはずがない。
そんな風に考えていた時期が僕にもありました。

Twitterは検索クエリに対応したタイムラインウィジェットのサポートを廃止していた

実はTwitterは2018年5月にこれまでのタイムラインウィジェットのサポートを廃止しており、新しくpublish.twitter.comでタイムラインウィジェットを作成するように仕様が変更されていました。

2018年5月以前のタイムラインウィジェットは、条件を指定して一致したツイートのタイムラインを作成するウィジェット機能で、まさに今回の要望にピッタリの機能です。

しかし、新しくなったタイムラインウィジェットでは、キーワードで抽出されたタイムラインは作成できなくなってしまっていたのです。


新しいタイムラインウィジェットを作成できる「Twitter Publish」。タイムラインのURLを入力することでウィジェットを作成できる。

仁木なんと…。これだとウィジェットを作れないじゃないか…。

アプローチを変えて特定キーワードが含まれているツイートをBotで自動RTさせよう

タイムラインウィジェットが使えないとなると、別の手段を考えなければなりません。

そこでディレクターと相談し、「Botサービスの自動RT機能を使って、RTするアカウントのタイムラインを表示させよう」という方法に切り替えることにしました。

仁木Botサービスを使ったら設定するだけで簡単に動く。ウィジェットもアカウントのタイムラインならTwitter Publishで出せるし、余裕。

TwitterのBotを探す

TwitterのBotサービスを検索するとたくさんのサービスがありましたが、その中で「MAKEBOT」が良さげでした。


時間指定の呟きや特定のキーワードが含まれるツイートの自動RT、自動お気に入りなど、豊富な機能が無料で利用できる「MAKEBOT

MAKEBOTの使い方を調べてみると、どうやらアカウントとBotを連携させるためにTwitterのデベロッパーサイトからアプリケーションを登録してAPI KeySecret KeyをMAKEBOT側に設定しないといけないようでした。

つまり、

MAKEBOTTwitterでアプリを申請・登録して、発行されたキーを登録してくれないと私は動かないですからね。

ということでした。

仁木わざわざアプリ登録しないといけないの?なんか大げさだし英語だし出来るなら避けたい…。けれど他に方法が見つからない…。

Twitter Developer Platformでアプリケーションを登録をする

今回MAKEBOTで必要なキーは、API KeyAPI Secret Keyの2つです。これらのキーはアプリケーションを作成するとペアで発行されます。

アプリの新規作成

アプリはTwitterの開発者サイトから作成できます。

まずは、画面右上の「Sign In」からTwitterにログインします。Twitterアカウントを持っていない人はアカウントを作成します。

「Twitter Developer Platform」、右上にある「Sign In」からTwitterのアカウントでログインできます。

ログインできたら、右上の「App」のリンクをクリックして作成済みアプリケーションのリストが出るページへ遷移します。

まだアプリを作成していないので、リストには何も表示されていませんが「Create an app」ボタンからアプリの作成へ進みます。

ここからアプリ作成者の情報を入力していき、アプリをTwitterへ申請します。

しかし、基本的に全ての入力項目は英語で選択・入力しなければいけません。
英語が苦手な人は逃げ出したくなると思いますが、翻訳ツールを駆使して入力していきましょう。

1. Twitterアカウントの確認

まず、最初にアプリ作成で利用するTwitterアカウントの確認です。
これは現在ログイン中のアカウントが選ばれているので、問題なければ「Continue」を選択します。

2. アカウントの詳細情報を入力

個人利用か法人利用か、当てはまる方を選ぶと下記に詳細の入力が表示されるので入力していきます。

今回、僕は法人の方を選択しました。法人の場合は、法人名コーポレートサイトのURL業種などを入力してきます。

3.  アプリの用途や仕様などの詳細情報を入力

今回作成するアプリケーションがどういった目的で作成されるのか、またアプリケーションがどういったサービスを提供するのかなどを入力します。
アプリの作成手順の中で、おそらくココが一番重要になるので2番目の入力項目は出来るだけ具体的に説明しましょう。

4. 規約に同意する

最後は、Twitter APIの利用規約になるので同意をします。
完了するとアプリ申請が完了し、Twitter社に審査されます。

審査期間は遅いと1〜2週間程かかる場合があるそうですが、僕の場合は2〜3日で申請が完了しAPI Keyが発行されました。

その間に一度「アプリケーションの詳細についてもっと詳しく書いて」という内容のメールがきたので、最初に書いていた内容に肉付けするような感じで文章を書き足してメールを返信しました。ちなみにメールはTwitterに登録しているメールアドレス宛に届きます。

仁木やっとアプリ作成できた…。この後何するんだっけ…。

Botとの連携のことなど、とうに忘れ去ってしまいました。

Twitterアカウントと作成したアプリを連携させる

MAKEBOTでアカウントを作成。新規Botを作成しTwitterアカウントと連携する。

MAKEBOTではまずアカウントの登録をします。
登録方法とBot作成方法については今回割愛させていただきます。

Botの作成が完了したのち、Botの設定画面で「つぶやき元の設定」という項目があります。
ここに先ほどのアプリ作成で発行したAPI keyAPI secret keycallback URLを設定します。

API keyとAPI secret keyとcallback URL

アプリが無事に作成できたら、デベロッパーページにログインして画面右上のナビゲーションから「Apps」を選択します。

ここから利用するアプリの「Details」ボタンを選択して、詳細へ進みます。

3つのタブメニューから「Details」を選択すると、項目の中にcallback URLがあるので、ここのURLをMAKEBOTにコピペします。

3つのタブメニューから「Keys and tokens」を選択すると、API keyAPI secret keyがあるので、ここもMAKEBOTにコピペします。


API keyとAPI secret keyをそれぞれコピペします

MAKEBOT側で「設定を保存」するとTwitterアカウントとの連携認証の画面にリダイレクトするので許可しましょう。

自動RTの設定

最後は自動RTの設定です。MAKEBOTの「リツイート設定」で自動RTの設定をしましょう。(設定方法は今回割愛させていただきます。)

仁木これであとはRTされるのを待つだけ。

MAKEBOTが自動RTしてくれない

数日間、しばらくBotの様子を見ていると全くRTされていないことがわかりました。

MAKEBOTのつぶやき機能などは正常に動作するので、Botとの連携自体は出来ているようですが、肝心のリツイート機能だけ動いてくれない。

仁木キーワードを変えても、動作時間の間隔を変えても動かない…。詰んだ…。

PHPでAPIを呼び出してツイート検索&リツイートする

最後の手段でPHPで直接APIを呼び出して検索&リツイートすることにしました。

twitteroauthライブラリをインストール

TwitterのAPIをPHPで呼び出すにはPHPライブラリの「twitteroauth」が必要になります。

composerでライブラリをインストールします。

PHPファイルを作成して、autoload.php経由でtwitteroauthを読み込みましょう。

さらに、APIを呼び出すためにはConsumer keyConsumer secret keyAccess tokenAccess token secretが必要になります。

これらのキーはTwitterデベロッパーサイトのアプリの詳細に記載されています。
Consumer keyConsumer secret keyはMAKEBOTの時に出てきていた、API keyAPI secret keyのことです。
今回はMAKEBOTの時に作ったアプリをそのまま使用しました。


Access tokenとAccess token secretが記載されていない場合は「create」をクリックするとキーが生成されます。

以下のコードのCONSUMER_KEY, CONSUMER_SECRET, $access_token, $access_token_secretにそれぞれのキーを割り当てます。

キーワードの入ったツイートを検索・取得する

API呼び出しまでをかけたら、次はツイートの検索・取得のコードを書きます。

TwitterのAPIは3つのプランがある

TwitterのAPIですが、プランが3つあり、プランのグレードによってAPIで利用できる機能や増えたりツイート検索の品質が向上したりします。

グレードの高いプランを利用すると呼び出し量に応じて課金が発生するので、無料で利用したい場合は一番下のStandardプランを利用することになります。プランは設定しなければ基本Standardが適用されます。

Standardではツイート検索の精度が完璧ではなく、一部取得できないツイートも出てくるようです。

リツイートをする

ツイートを取得できたら、今度はこれらのツイートをリツートしていきます。
取得ツイートは配列で格納されているのでループで繰り返し処理します。

これまでのコードをまとめたのが以下になります。

このPHPを実行するとキーワードの含んだツイートをリツイートしてくれます。

ちなみにTwitterアカウントとの紐付けですが、アプリを作成したアカウントと既に紐づいているようで、ツイッターのアプリ側で連携の認証は必要ありませんでした。

cronで定期的にファイルを実行する

最後に、先ほど用意したPHPファイルをサーバーにアップし、サーバーのcronで定期実行するようにしました。

動いた…!

仁木長かった…。

というわけで、今回はTwitterのAPIを使ってアカウントを操作する方法を実例をあげてご紹介しました。

英語の得意でない僕にとって、アプリの作成が一番ハードルが高かったです。
Google翻訳にはとてもお世話になりました。

今後、僕と同じような状況になった人の参考になればと思い、記事にしてみました。

お電話でのお問い合わせはこちら:06-6292-8577。受付時間は平日9:30~18:30 インターネットからは24時間受付中!お問い合わせフォームはこちら
Webデザイナー、Webプログラマ募集中!