Xrea + PHP + OAuth + twitter REST API で BOT の完全スクリプト

シェアする

  • このエントリーをはてなブックマークに追加
  • Evernoteに保存Evernoteに保存

ポイントは、twitterBOT用のアプリをtwitterのデベロッパーサイトに登録後、右側に表示される”My Access Token”に記載されている、認証トークン(アクセス・トークン)を控えること。

必要なもの

  1. GitHubの”twitteroauth”をダウンロード・解凍して、”twitteroauth”フォルダにある”twitteroauth.php”と”OAuth.php”の2ファイル
  2. twitterのアカウント
  3. 自動ポスト(BOT)用アプリをtwitterに登録
  4. 認証トークンの取得
    (アプリの登録画面で確認)
    1. Consumer keyの値
    2. Consumer secretの値
  5. アクセストークンの取得
    (アプリ登録後、右側にある”My Access Token”に記載されている情報)
    1. Access Token (oauth_token)の値
    2. Access Token Secret (oauth_token_secret)の値

Xreaで動くOAuthを使ったPHPスクリプトのサンプル

※文字コードはUTF-8が無難です。
<?php
require_once("./twitteroauth.php");
require_once("./OAuth.php");
// Consumer keyの値
$sConsumer_key = "ここにコンシューマー・キー値";
// Consumer secretの値
$sConsumer_secret = "ここにコンシューマー・シークレットの値";
// Access Tokenの値
$sAccess_token = "ここにアクセス・トークンの値";
// Access Token Secretの値
$sAccess_token_secret = "ここにアクセス・トークン・シークレットの値";
// OAuthオブジェクト生成
$oTwitter = new TwitterOAuth($sConsumer_key,$sConsumer_secret,$sAccess_token,$sAccess_token_secret);
// TwitterへPOST★
$sResultXML = $oTwitter->OAuthRequest(
  "https://twitter.com/statuses/update.xml",
  "POST",
  array(
    "status"=>"OAuth経由のポストテスト"
  )
);
header("Content-Type: application/xml");
echo($sResultXML);
?>

他のメソッドを使いたい場合

つぶやきをPOSTするだけでなく、タイムラインを取得したり、他の処理をしたい場合も簡単です。

上記スクリプトのPOSTしている行のメソッドの引数を変更するだけです。

<?php
$mResult = $oTwitter->OAuthRequest(
  "ここにtwitterAPIのメソッドのURL",
  "ここにPOSTかGET",
  "ここにOPTIONを配列で"
);
?>

例えば、「パブリックのタイムライン(フォロー関係なく、最新のつぶやき一覧)を取得したい」場合、まずはtwitterのAPIリファレンスを見に行って、該当するメソッドを探します。この場合は、”Timeline Methods”にある”statuses/public_timeline“のメソッドが該当します。

次に、メソッドの仕様を見て、下記3点をチェックします。

  1. メソッドのURL → Resource URL
  2. リクエストがGETなのかPOSTか → HTTP Methods
  3. オプションはどのようなものがあるか → Parameters

オブジェクトに必要情報を埋めた(引数で渡した)のが、下記の行です。最上部のサンプルでPOSTしている行(★)と書き換えてみてください。

<?php
//JSON形式でパブリックのタイムラインを取得
$sResult = $oTwitter->OAuthRequest(
  "https://twitter.com/statuses/public_timeline.json",
  "GET",
  array()
);
?>

仕様の各項目については下記の通り。

twitterAPIメソッドの仕様の簡易説明

適当なメソッドの仕様を開きながらチェックしてみて下さい。

■Resource URL

twitterAPIのメソッドにアクセスするためのリクエスト先のURLのフォーマットです。

//基本フォーマット
http://api.twitter.com/version/statuses/public_timeline.format

特に特定のバージョンの指定がなければ、”version”は省略できます。ポイントは、末尾の”format”です。ここでレスポンスのフォーマット(結果表示の書式)を指定します。
例えばJSON形式で結果が欲しい場合は”json”にします。

例)atom形式でパブリックのタイムラインを取得するためのメソッドのURL
https://twitter.com/statuses/public_timeline.atom

対応するフォーマットは、メソッドによって異なりますが、仕様書右側にある”Resource Information”欄で、対応フォーマットが確認できます。

Resource Informationの内容

■Rate Limited?

制限があるかないかです。TRUEの場合、下記条件が適用されます。

  • 認証なしの場合:同一IPからのリクエストが1時間に150リクエストまで。
  • 認証ありの場合:一時間に350リクエストまで可能。

制限の詳細

■Requires Authentication?

リクエスト時にOAuth認証済みの必要があるか、ないかです。TRUEの場合は必要です。

■Response Formats

リクエストした結果を受け取る際の指定できるフォーマットです。json, xml, rss, atom などがあります。

※リクエストURLの末尾の値です。

■HTTP Methods

リクエスト形式です。POSTもしくはGETがあります。

その他

■Parameters

このメソッドのパラメーター(オプションの種類)です。

Requiredは必須オプション、Optionalは任意オプションです。

オブジェクトの第三引数(オプション)で配列で渡す場合のキー名となります。

参考URL(必読)

所感

PEARのServices_Twitter、Net_URL2 + HTTP_Request2 + HTTP_OAuth など、色々検討しましたが、Xreaだったらこれが楽かな。


スポンサーリンク
レクタングル(大)広告

シェアする

  • このエントリーをはてなブックマークに追加
  • Evernoteに保存Evernoteに保存
スポンサーリンク
レクタングル(大)広告