28
30

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[PHP]Twitter APIを試して少しまとめた

Last updated at Posted at 2020-08-12

今回の題

Twitter APIの審査がようやく通ったので記事にします。いつか誰かの参考になれば幸いです。

余談ですが、グーグル翻訳の精度が上がっていて申請の際にめちゃくちゃ助かりました。
アカウントの申請に関しては本記事では省きますが、以下のリンクから行えます。

申請はこちらから

ライブラリの準備

・abraham/twitteroauthのインストール
abraham/twitteroauthはstar数4000近い人気のライブラリです。
少ないコード、シンプルな記述で簡単にTwitter APIを操作できます。

$ composer require abraham/twitteroauth

利用準備

申請後の開発者用のページのComusumer KeyAccess Tokenが乗っているのでコピーしておいてください。
コードはREADMEに記載されていたこちらのページに従って書いていきます。
適宜、目を通しておくと吉です。

インスタンスの作成

<?php
require('vendor/autoload.php');

use Abraham\TwitterOAuth\TwitterOAuth;

$consumer_key = 'XXXXXXXXX';
$consumer_key_sercret = 'XXXXXXXXX';
$access_token = 'XXXXXXXXX';
$access_token_secret = 'XXXXXXXXX';

$connection = new TwitterOAuth($consumer_key, $consumer_key_sercret, $access_token, $access_token_secret);

composerのオートロードでvendor配下のライブラリをロードし、useを使ってエイリアスを作成。TwitterOAuthオブジェクトのインスタンスを変数$connectionに作成します。
インスタンス作成時の引数は各自の開発者ページに記載のものを利用してください。

コード

abraham/twitteroauthのメソッドには基本的に、
第一引数にエンドポイントのパス
第二引数にパラメーター
を渡します。
エンドポイントとパラメーターは以下で確認できます。
Twitter Developer
日本語でまとめてくれているサイトがありました。
Twitter REST APIの使い方

いくつか試してみます。


1.ツイートを検索する

ツイートの検索をするためのエンドポイントは
https://api.twitter.com/1.1/search/tweets.json
であることを、Twitter Developer /Search Tweetsで確認しておきます。
第一引数として使用するのは、search/tweetsの部分です。

$tweets = $connection->get('search/tweets', ['q' => '駆け出しエンジニア']);

パラメーターは連想配列で渡します。
これで、駆け出しエンジニアというワードが含まれたツイートを取得できました。


2.ツイートする

$connection->post('statuses/update', ['status' => 'テスト'];

メソッドをpostにするとpostリクエストが出来ます。
アカウントの設定をRead and Writeに設定しておく必要があります。


3.いいねする

いいねをする為には、対象のツイートのidが必要になります。
なので、「1.ツイートを検索する」で書いたような手段でツイートを検索し、そのレスポンスの中に含まれてるツイートのidを取得し指定してください。

$connection->post('favorites/create', ['id' => '1292797790070779905'];


4.トレンドを検索する

まず、エンドポイントtrends/availableで日本のidを取得します。

$connection->get('trends/available');

日本のidは2345896でした。
それを今度は、trends/placeのパラメータとして渡します。

$connection->get('trends/place', ['id' => '2345896']);

これで今現在の日本のTwitter上でのトレンドが取得できます。


5.APIの制限数を確認する

$connection->get('application/rate_limit_status');

APIのリクエストには一定時間内での回数制限があります。
それを取得するためのリクエストです。リクエストの残数などを確認することができます。
パラメーターを指定すればエンドポイントごとに確認することも可能です。

制限回数は以下で確認することができます。
Twitter Developer Rate limits

以上!!

最後に

ここまで読んでいただきありがとうございます。
いつか誰かの参考になれば幸いです。
他にもAPI関連の記事を書いていますので、よければ🙇‍♀️
[PHP] Zoom APIを利用してミーティングを作成する
[PHP] YouTube APIの利用(動画情報の取得)
[PHP] Messaging APIを使ったLINEbotで色々試してみる

参考

Twitter Developer
TwitterOAuth

28
30
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
28
30

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?