twitter api v2 は微妙に機能が足りない。
ということで、twitter api v1 を使う。
今回は laravel にて。
use Abraham\TwitterOAuth\TwitterOAuth;
を利用
指定したリストから200件取得し人気のツイート順に並べる
$twi = new TwitterOAuth(
config('app.twitter_client_id'),//APIKEY
config('app.twitter_client_secret'),//APISECRET
config('app.twitter_account_token'),//ユーザーのトークン
config('app.twitter_account_token_secret')//ユーザーのシークレットトークン
);
$timeline = $twi->get("lists/statuses", [
"list_id" => "1612264628268204043",
"count" => 200
]);
$res = [];
foreach ($timeline as $v) {
$res[] = [
'id' => $v->id,
'text' => $v->text,
'created_at' => date('Y-m-d H:i:s', strtotime($v->created_at)),
'retweet_count' => $v->retweet_count,
'favorite_count' => $v->favorite_count,
'retweet_favorite_sum_count' => $v->retweet_count+$v->favorite_count,
'user' => [
'id' => $v->user->id,
'name' => $v->user->name,
'screen_name' => $v->user->screen_name
]
];
}
$res = collect($res);
$res = $res->sortByDesc('favorite_count')->values()->toArray();
結果
Array
(
[0] => Array
(
[id] => 1612350183727312896
[text] => RT @kawaiyorikirei: え、待って待って!!今岡田将生と谷口彰悟がフリーってこと⁉︎
それって私にも可能性があるってこと⁉︎ https://t.co/EZeleJaNtb
[created_at] => 2023-01-09 16:26:54
[retweet_count] => 11
[favorite_count] => 0
[retweet_favorite_sum_count] => 11
[user] => Array
(
[id] => 1411627715996778496
[name] => もふ子🌸
[screen_name] => mofuko_n_n
)
)
[1] => Array
(
[id] => 1612346131857702918
[text] => 4人中2人は子持ちで、
1人は第二子妊娠中だった🫣🫣🫣
1人はおこちゃま背負いながらお教室やってた🤭
前までの私だったら
あー…いいなぁ幸せそう
って思って多分もやっとしていただろう。
妊娠もその日に知ったし。
今はいつか自分も… https://t.co/iMP3dtGDfz
[created_at] => 2023-01-09 16:10:48
[retweet_count] => 0
[favorite_count] => 2
[retweet_favorite_sum_count] => 2
[user] => Array
(
[id] => 1411627715996778496
[name] => もふ子🌸
[screen_name] => mofuko_n_n
)
)
指定したユーザーのリスト一覧を取得
(リストを持つユーザーでログインしていないと、エラーが出る)
$list_ids = $twi->get("lists/list", [
"screen_name" => "twikon_club"
]);
結果
Array
(
[0] => stdClass Object
(
[id] => 1612264628268204043
[id_str] => 1612264628268204043
[name] => 婚活
[uri] => /twikon_club/lists/1612264628268204043
[subscriber_count] => 0
[member_count] => 49
[mode] => private
[description] => 婚活の識者様をご登録させて頂いております。
//以下略
指定したリストにユーザーを追加
$member_tmp = $twi->post("lists/members/create", [
"list_id" => "1612264628268204043",//listのid
"slug" => " 1612264628268204043",//listのid
"owner_screen_name" => "twikon_club",//リストの持ち主のscreen_name
"user_id" => "125023968"//登録したいユーザー
]);
「婚活」クラスタのユーザーを取得
$member_tmp = $twi->get("users/search", [
"q" => "婚活",
"page" => 1,
"count" => 10
]);
以上
・婚活クラスタのユーザーを取得
・婚活リストに上記ユーザーを追加
・婚活リストから人気のツイートを検索すれば、婚活に対する人気のツイートがなにかを取得することが可能。