PHP×twitteroauth で Twitter BOT を作ってみる練習

PHP から Twitter に OAuth認証してみる練習をしたので、そのメモ。

Twitter OAuth でググってみると、BOTを作る手順がすぐに見つかった。たぶん一番簡単なサンプルなんだろうと思い、今回は手始めに、投稿したりとかするBOTを作ってみることにした。

PHP用の Twitter向けOAuthライブラリ twitteroauth を使って、BOTアカウントからのツイート投稿を実装してみた。

アプリを登録する

BOTを実装するまえに、準備としてTwitterにアプリを登録しておく必要がある。まずはその手順から。

デベロッパーサイトにBOTアカウントでログイン

下記のURLにアクセスし、ログインする。できあがるBOTは、ログインしたアカウント名義で投稿することになるので、ここでログインするのはBOTのアカウントで。

アプリケーションを登録する

右上の「Create an application」ボタンを押して、アプリケーションを登録する。
今回作るテストアプリのアプリ名は "pxt" とした。

Read and Write 設定に変更しておく

アプリケーションの登録が終わったら、アプリ "pxt" の詳細画面へ行く。

アプリケーションはデフォルトで Read only となっているが、BOTは書き込みを行うので、Read and Write に変更なければならない。

手順は下記。

  1. 「Setting」タブに移動し、Application Type > Access: を Read and Write に変更。
  2. 「Update this Twitter application's settings」を押して変更を確定する。

Consumer key を確認する

もう一度詳細画面に戻って、作成したアプリケーションの諸情報を確認する。

Access level
Read and write
Consumer key
(ナイショ)
Consumer secret
(ナイショ)
Request token URL
https://api.twitter.com/oauth/request_token
Authorize URL
https://api.twitter.com/oauth/authorize
Access token URL
https://api.twitter.com/oauth/access_token

いろいろ情報が載っているが、Consumer key と Consumer secret は後で使うので、確認してメモっておく。

Access Token を作成する

詳細画面の一番下にある「Create my access token」ボタンを押して、Access token を生成する。

Access token
(ナイショ)
Access token secret
(ナイショ)
Access level
Read and write

ここで発行される、Access token と Access token secret も後で使うので、確認してメモっておく。

ここまでで事前準備はお終い。

PHP用ライブラリ twitteroauth を入手

ざっくりググって見つけたPHP用のTwitterOAuthライブラリ twitteroauth を使ってみる。

Tags から、0.2.0-beta3.zip をダウンロードして使用してみた。

設置

ZIPを解凍するとたくさんのファイルが生成されるが、実際に使用するのは次の2ファイルだけ。

  • twitteroauth.php
  • OAuth.php

これを、任意のディレクトリに設置する。

ちなみに、このライブラリは、PHPの cURL を使用しているので、これが使えるようにPHPを設定しておく必要がある。

Twitterに投稿してみる

参考サイト に従ってサンプルコードを実装してみた。

<?php

  //  ライブラリを読み込む。
  //  別の場所に設置した場合は、パスを修正すること。
  require_once(dirname(__FILE__)."/libs/twitteroauth.php");

  //  Twitterから発行された値をコピペする
  $consumer_key = '(ナイショ)';
  $consumer_secret = '(ナイショ)';
  $access_token = '(ナイショ)';
  $access_token_secret = '(ナイショ)';

  //  TwitterOAuthオブジェクトをインスタンス化
  $twiOAuth = new TwitterOAuth( $consumer_key, $consumer_secret, $access_token, $access_token_secret );

  //  投稿する
  $response = $twiOAuth->OAuthRequest("http://api.twitter.com/statuses/update.json","POST",array("status"=>"テスト"));

  //  Twitterから返されたJSONをデコードする
  $result = json_decode($response);

  print '<pre>';
  var_dump($row);
  print '</pre>';

?>

このサンプルでは、libsディレクトリの中に、twitteroauth.php と OAuth.php を設置している。別の場所に設置した場合は、require_once() の行を修正すること。
それから、Twitterの詳細画面でメモした4つの値 $consumer_key, $consumer_secret, $access_token, $access_token_secret を、メモした通りにコピペする。

ちなみに、このサンプルはJSONのAPIを使っているので、PHPでJSON関数が使えるようになっていないとエラーになる。

このコードを実行すると、BOTアカウントで「テスト」というツイートが投稿された。

その他のTwitter APIの機能

今回の練習ソースで、実際に投稿を実施しているのは下記の行だ。

//  投稿する
  $response = $twiOAuth->OAuthRequest("http://api.twitter.com/statuses/update.json","POST",array("status"=>"テスト"));

ここを、別のAPIに書きかえれば、いろいろな機能を実装できる。
別のAPIについては Twitter API の仕様書を見ながらいろいろ試してみたい。けど、これはまた後日。

ちょっと古いけど下記に日本語の仕様書がある。

参考サイト

このサイトを参考にさせて頂きました。


プロフィール

コヤナギ トモヤ

ウェブ系エンジニアしてます。ウェブデザイナー、ウェブディレクターとしてウェブ制作の仕事に携わり、今はエンジニア職に流れ着きました。誰かのお仕事をちょっとだけ効率化するような支援ツールの開発が好き。オープンソースとMITライセンス大好き。人生後半は自由と民主主義のコントリビューターとして過ごす予定。

ウェブ制作支援ツール Pickles 2 をオープンソースで開発しています。

PHP/JavaScript/NodeJS/nwjs/Laravel/Pickles2/オープンソース/心理学/倫理/自由と民主主義

RSSフィード

ページの先頭へ戻る