8/03/2012

[php で OAuth を使ってみる:第十参回] Twitter でフォローの一覧を取得する

Twitter に OAuth を使ってフォローの一覧を取得してみる。
※この情報は 2012 年 7 月現在のものです。仕様が変更される可能性は充分にあるので、ご了承ください。

OAuth を使った認証の流れは Twitter に文字を post する を参照。

フォローの一覧を一覧を取得するには、フォロワのとき と同じく、二段階の手順を踏まないといけないので、少々めんどくさいです。ここでは便宜上、2 つのファイルに分けてます。

1. フォローの id を取得する
<?php
include 'HTTP/OAuth/Consumer.php';

$consumer_key = 'xxxxxxxxxxxxxxxx'; // 以前のエントリーで確認した Consumer key
$consumer_secret = 'xxxxxxxxxxxxxxxx'; // 以前のエントリーで確認した Consumer secret
$access_token = 'xxxxxxxxxxxxxxxx'; // 以前のエントリーで取得した access_token
$access_token_secret = 'xxxxxxxxxxxxxxxx'; // 以前のエントリーで取得した access_token_secret

$http_request = new HTTP_Request2();
$http_request->setConfig('ssl_verify_peer', false);

$consumer = new HTTP_OAuth_Consumer($consumer_key, $consumer_secret);
$consumer_request = new HTTP_OAuth_Consumer_Request;
$consumer_request->accept($http_request);
$consumer->accept($consumer_request);

$consumer->setToken($access_token);
$consumer->setTokenSecret($access_token_secret);

$api_url = 'http://api.twitter.com/1/friends/ids.json';
$params = array(
  'screen_name' => 'wings1685' // screen_name
);
$response = $consumer->sendRequest($api_url, $params, 'GET');

echo $response->getBody();
?>

2. 取得した id からデータを取得する
<?php
include 'HTTP/OAuth/Consumer.php';

$consumer_key = 'xxxxxxxxxxxxxxxx'; // 以前のエントリーで確認した Consumer key
$consumer_secret = 'xxxxxxxxxxxxxxxx'; // 以前のエントリーで確認した Consumer secret
$access_token = 'xxxxxxxxxxxxxxxx'; // 以前のエントリーで取得した access_token
$access_token_secret = 'xxxxxxxxxxxxxxxx'; // 以前のエントリーで取得した access_token_secret

$http_request = new HTTP_Request2();
$http_request->setConfig('ssl_verify_peer', false);

$consumer = new HTTP_OAuth_Consumer($consumer_key, $consumer_secret);
$consumer_request = new HTTP_OAuth_Consumer_Request;
$consumer_request->accept($http_request);
$consumer->accept($consumer_request);

$consumer->setToken($access_token);
$consumer->setTokenSecret($access_token_secret);

$api_url = 'http://api.twitter.com/1/users/lookup.json';
$params = array(
  'user_id' => '12345,67890' // ユーザ id(複数の場合はカンマで区切る)
);
$response = $consumer->sendRequest($api_url, $params, 'GET');

echo $response->getBody();
?>

GET friends/ids | Twitter Developers
GET users/lookup | Twitter Developers

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.