前回はtwitterアカウントの情報を取得してみましたが、今回は自分のアカウントのフォロされている一覧とフォローしている一覧のリストを取得してみたいと思います。
環境は前回と同じ場所で新しくPHPファイルを設置してください。
フォロワー(フォローしてくれているアカウント)の取得
twitter_follower.php
<?php
date_default_timezone_set('Asia/Tokyo');
//ライブラリ処理
require 'twitteroauth/autoload.php';
use Abraham\TwitterOAuth\TwitterOAuth;
//CLIの場合argvをREQUESTに変換する。
if(!isset($_SERVER['SCRIPT_URI']) && isset($argv)){
for($i=0,$c=count($argv);$i<$c;$i++){
if(!$argv[$i]){continue;}
//各クエリの分解
$q = explode("=",$argv[$i]);
if(count($q)<2){continue;}
if($q[0]!=''){
//requestに格納
$key = $q[0];
$val = join("=",array_slice($q,1));
$_REQUEST[$key]=$val;
}
}
}
$key = array(
"consumer_key"=>"******",
"consumer_secret"=>"******",
"access_token"=>"******-******",
"access_token_secret"=>"******"
);
$connection = new TwitterOAuth($key['consumer_key'],$key['consumer_secret'],$key['access_token'],$key['access_token_secret']);
// フォロワー一覧取得
$followers = $connection->get('followers/ids', array('cursor' => -1));
echo "Followers:".count($followers->ids)."アカウント\n";
print_r($followers)."\n";
結果
Followers:10アカウント
stdClass Object
(
[ids] => Array
(
[0] => 1427204396
[1] => 1655339252
[2] => 597771429
[3] => 757726286
[4] => 847344516
[5] => 2334207386
[6] => 574034021
[7] => 28918980
[8] => 93852144
[9] => 1642974734
[10] => 3081670999
)
[next_cursor] => 1342870869284945291
[next_cursor_str] => 1342870869284945291
[previous_cursor] => 0
[previous_cursor_str] => 0
)
自分をフォローしてくれているアカウントIDの一覧を取得できます。
このIDがtwitter内部のユーザーIDらしいので、これを使って色々と処理をすればいいという事になります。
ユーザーIDをユーザーアカウントに変換する
ちなみに、このIDを前回のユーザー情報の取得プログラムを使ってユーザーID一覧を取得することもできます。
twitter_follower_name.php
<?php
date_default_timezone_set('Asia/Tokyo');
//ライブラリ処理
require 'twitteroauth/autoload.php';
use Abraham\TwitterOAuth\TwitterOAuth;
//CLIの場合argvをREQUESTに変換する。
if(!isset($_SERVER['SCRIPT_URI']) && isset($argv)){
for($i=0,$c=count($argv);$i<$c;$i++){
if(!$argv[$i]){continue;}
//各クエリの分解
$q = explode("=",$argv[$i]);
if(count($q)<2){continue;}
if($q[0]!=''){
//requestに格納
$key = $q[0];
$val = join("=",array_slice($q,1));
$_REQUEST[$key]=$val;
}
}
}
$key = array(
"consumer_key"=>"******",
"consumer_secret"=>"******",
"access_token"=>"******-******",
"access_token_secret"=>"******"
);
$connection = new TwitterOAuth($key['consumer_key'],$key['consumer_secret'],$key['access_token'],$key['access_token_secret']);
// フォロワー一覧取得
$followers = $connection->get('followers/ids', array('cursor' => -1));
echo "Followers:".count($followers->ids)."アカウント\n";
for($i=0;$i<count($followers->ids);$i++){
//echo $followers->ids[$i].",";
$userinfo = $connection->get('users/show', ['id'=> $followers->ids[$i]]);
echo $userinfo->screen_name."\n";
}
結果
Followers:10アカウント
_KSYA_
ioYaya1125
info_saki_love
harrischris69
TalkToErik
Daniel_Mazzini
JyunyaSuzuki
GeorgieAnn55
greensboro_nc
b3540
zekkeigazoubot
とりあえず、想定通りの結果になりましたが、ユーザー情報の取得が1ユーザー毎にセッションを貼り直していたのではとても遅くて100ユーザーを超えると戻ってくるのに数分かかってしまうことになるので、これは今後考えていきたいと思います。
フォローしているアカウントの取得
twitter_follow.php
<?php
date_default_timezone_set('Asia/Tokyo');
//ライブラリ処理
require 'twitteroauth/autoload.php';
use Abraham\TwitterOAuth\TwitterOAuth;
//CLIの場合argvをREQUESTに変換する。
if(!isset($_SERVER['SCRIPT_URI']) && isset($argv)){
for($i=0,$c=count($argv);$i<$c;$i++){
if(!$argv[$i]){continue;}
//各クエリの分解
$q = explode("=",$argv[$i]);
if(count($q)<2){continue;}
if($q[0]!=''){
//requestに格納
$key = $q[0];
$val = join("=",array_slice($q,1));
$_REQUEST[$key]=$val;
}
}
}
$key = array(
"consumer_key"=>"******",
"consumer_secret"=>"******",
"access_token"=>"******-******",
"access_token_secret"=>"******"
);
$connection = new TwitterOAuth($key['consumer_key'],$key['consumer_secret'],$key['access_token'],$key['access_token_secret']);
// フォロワー一覧取得
$friends = $connection->get('friends/ids', array('cursor' => -1));
echo "Friends:".count($friends->ids)."アカウント\n";
print_r($friends)."\n";
結果
Friends:10アカウント
stdClass Object
(
[ids] => Array
(
[0] => 3122979097
[1] => 2475814386
[2] => 96339963
[3] => 8043322
[4] => 790146618
[5] => 118376490
[6] => 123537533
[7] => 69317034
[8] => 51906706
[9] => 955551193
[10] => 2326305162
)
[next_cursor] => 1346006129412154419
[next_cursor_str] => 1346006129412154419
[previous_cursor] => 0
[previous_cursor_str] => 0
)
「followers」を「friends」に変更するだけですね。
取得できる情報の種類も同じなので、ここは一緒に覚えておきましょう。
0 件のコメント:
コメントを投稿