XのAPIが有料化されてから初めて触りました。
今となっては、なかなか使う機会もないけどメモ。
ライブラリ
composer require abraham/twitteroauth
XのAPI関連キーが4つ必要
①APIキー
②API Key Secret
③Access Token
④Access Token Secret
プログラム
$connection = new TwitterOAuth(①, ②, ③, ④);
$connection->setApiVersion('2');
$response = $connection->get('users/by/username/yu_takashina', [
'user.fields' => 'profile_image_url,public_metrics',
]);
// フォロー数
$response->data->public_metrics->following_count;
// フォロワー数
$response->data->public_metrics->followers_count;
ユーザーが存在しなかったり、APIの制限に引っかかったら$response->dataが無くて、エラーになりました。
エラーチェックは適宜入れましょう。
Wordpressでフォローワー数が多い順で並べた
この案件はWordpressだった。
update_post_meta($post->ID, 'following', $response->data->public_metrics->following_count);
update_post_meta($post->ID, 'followers', $response->data->public_metrics->followers_count);
wp_update_post($post);
上記で保存して
$args = [
'orderby' => 'meta_value',
'meta_key' => 'followers',
'orderby' => 'DESC',
];
$wp_query = new WP_Query();
$wp_query->query($args);
では、期待通りの順番にならなかった。
文字列で保存されているので、
9, 88, 10000
のような順番になる。
保存時にゼロ埋めで桁合わせしてあげたらOKだった。
update_post_meta($post->ID, 'following', sprintf('%09d', $response->data->public_metrics->following_count));
update_post_meta($post->ID, 'followers', sprintf('%09d', $response->data->public_metrics->followers_count));
wp_update_post($post);