1、twitteroath.phpをコールする。
最初にindex.phpに
require_once("twitteroauth.php");
を記述してtwitteroauth.phpを呼び出します。
require("twitteroauth.php");
でもいいのですが
require_once("twitteroauth.php");
は既に読み込まれていた場合読み込まない便利な命令なので
require_onceを使用するようにすれば間違えて2重に読み込むことを防げます。
あ、もちろんPHPの命令なので
の間に書いてください。
twitteroauth.phpとoauth.phpは同じディレクトリにアップロードしてください。
twitteroauth.phpを同じディレクトリにアップロードした場合はこのままでいいですが、他のフォルダの中に入れた場合はoauth/twitteroauth.phpなどにしてください。
何でhttp://www.example.com/oauth/twitteroauth.phpみたいに指定しないの?と思う人はカレントディレクトリでggってみるといいです。
2、twitteroauth.phpに渡すための必要なオブジェクトを生成する。
twitteroauth.phpをコールしただけじゃ何もできないことはわかると思います。
twitteroauth.phpにoauth認証のkeyを渡してあげなければいけません。
そのために数値を入れておくオブジェクトを生成します。
オブジェクトというのは簡単に言えば変数の集まりです。
ここらへんを詳しく書くと時間がかかってしまうので説明は省略します。
詳しく知りたいひとはクラスとオブジェクトについてggってみてください。
以下の文をindex.phpに記述してください。
$consumer_key = "取得したConsumerKey";
$consumer_secret = "取得したConsumerSecret";
$access_token = "取得したAccessToken";
$access_token_secret = "取得したAccessTokenSecret";
$obj = new TwitterOAuth($consumer_key, $consumer_secret, $access_token, $access_token_secret);
この文ではTwitterOAuthというクラスを利用して$objというオブジェクトを生成しています。
$objというオブジェクトの中に4つあったOAuthKeyが入れられたということです。
$objをprint_r();を使って中身を見てみるとこんな感じになってます。
TwitterOAuth Object
(
[http_code] =>
[url] =>
[host] => https://api.twitter.com/1/
[timeout] => 30
[connecttimeout] => 30
[ssl_verifypeer] =>
[format] => json
[decode_json] => 1
[http_info] =>
[useragent] => TwitterOAuth v0.2.0-beta2
[sha1_method] => OAuthSignatureMethod_HMAC_SHA1 Object
(
)
[consumer] => OAuthConsumer Object
(
[key] => 取得したconsumer_key
[secret] => 取得したconsumer_secret
[callback_url] =>
)
[token] => OAuthConsumer Object
(
[key] => 取得したAccessToken
[secret] => 取得したAccessTokenSecret
[callback_url] =>
)
)
これでtwitteroauth.phpに渡す準備ができました。
ここではnewというオブジェクトを作成する命令を使用してTwitterOAuthというクラスを使い$objというオブジェクトを生成した、ということさえわかれば問題ないです。
3、生成したオブジェクトを使いTwitterにOAuthを使ってリクエストする。
オブジェクトを生成しただけではtwitterにリクエストすることはできません。
生成したオブジェクトを利用してtwitterのAPIをコールします。
コールする時は
$obj->OAuthRequest("リクエストURL","メゾット","リクエストパラメーター");
でリクエストします。
ここでは投稿することが目的なので投稿するための例文を示します。
まずリクエストURLはtwitterの投稿するためのAPIを指定します。
投稿用のAPIURLは
https://twitter.com/statuses/update.format
です。
formatの部分は返り値のフォーマットを指定することができます。
PHPではXMLが処理しやすいのでxmlを指定します。
xmlの他にはjsonやatomなどもあります。
次に投稿する時のメゾットを指定します。
POSTかGETかを指定できますが、投稿はPOSTなのでPOSTを指定します。
POSTメゾットとGETメゾットの違いなどについてはggってみてください。
最後にリクエストパラメーターを指定します。
ここではtwitter側で指定されたリクエストパラメーターを使用して、投稿する文やリプライ元ツイートのIDを指定したりすることができます。
つまりどういうことかというと、ここにリクエストするデータを追加していくということです。
ツイートを投稿する場合は
array("status"=>"ツイート内容")
だけでOKです。
リプライ元ツイートIDも指定する場合は
array("status"=>"@userid リプライ内容","in_reply_to_status_id"="リプライ元ツイートのID")
とします。
その他のパラメーターについてはtwitterのAPIwikiなどを見てください。
アップデートAPI詳細
まとめると以下のようになります。
普通にツイートする場合
$obj->OAuthRequest("https://twitter.com/statuses/update.xml","POST"," array("status"=>"ツイート内容");
リプライ元ツイートのIDを付加する場合
$obj->OAuthRequest("https://twitter.com/statuses/update.xml","POST"," array("status"=>"@userid リプライ内容"."in_reply_to_status_id"=>"リプライ元ツイートID);
これで投稿ができます。
投稿後の返り値が取得したいのならば
$response = $obj->OAuthRequest("https://twitter.com/statuses/update.xml","POST"," array("status"=>"ツイート内容");
としてやれば
$responseに返り値が入ります。
$responseには投稿に成功したか失敗したかなどの情報も入っているのでちゃんとしたクライアントを作るときはここを見る必要があります。
$responseは指定したformat、つまりこの場合xmlを指定しているのでxml形式で
$responseが返ってきます。
ここで、今回説明したプログラムの内容をまとめると以下のようになります。
//twitteroauth.phpをコール
require_once("twitteroauth.php");
//オブジェクトを生成
$consumer_key = "取得したConsumerKey";
$consumer_secret = "取得したConsumerSecret";
$access_token = "取得したAccessToken";
$access_token_secret = "取得したAccessTokenSecret";
$obj = new TwitterOAuth($consumer_key, $consumer_secret, $access_token, $access_token_secret);
//投稿
$obj->OAuthRequest("https://twitter.com/statuses/update.xml","POST"," array("status"=>"ツイート内容");
これで投稿だけできるPHPの完成です。
PHPをコールすればtwitter側に問題が無く規制されていない状態ならば投稿されるはずです。
コピペしてプログラムを動かすのもいいですが、できるだけ自分で書くようにしたほうがいいかとは思います。