1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

はじめての記事投稿
Qiita Engineer Festa20242024年7月17日まで開催中!

PHPでX APIを利用してフォロー数、フォロワー数を取得

Posted at

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);
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?