重要な注意: 2018 年半ばの時点で、Twitter API トークンを取得するプロセスはより官僚的になりました。API トークンのセットが提供されるまでに1 週間以上かかりました。これは、Packagist で120 万回以上のインストールがあり、Github で 1.6k スターがあり、理論的には優先度が高いはずの皆さんのためのオープンソース プロジェクトです。.
仕事で twitter API を使用する場合は、この非常に長い待ち時間を考慮に入れる必要があります。また、Facebook や Instagram などの他のソーシャル メディアの手段を検討し、これらのオプションを提供してください。それらのトークンを取得するプロセスは瞬時に完了します。
Twitter v1.1 API を使用しますか?
注: これらのファイルは GitHub にあります。
バージョン 1.0は間もなく廃止され、承認されていないリクエストは許可されなくなります。そこで、これを行うのに役立つ投稿と、作業を楽にする PHP クラスを紹介します。
1. 開発者アカウントを作成する: Twitter で開発者アカウントを設定します。
公式の Twitter 開発者サイトにアクセスして、開発者アカウントに登録する必要があります。これは、v1.1 API のリクエストを作成するために必要な無料のステップです。
2. アプリケーションの作成: Twitter 開発者サイトでアプリケーションを作成します。
何?認証されていないリクエストを行うことができると思いましたか? Twitter の v1.1 API にはありません。http://dev.twitter.com/appsにアクセスして、[Create Application] ボタンをクリックする必要があります。
このページで、必要な詳細を入力します。私にとっては、それは問題ではありませんでした。なぜなら、スパム フォロワーを取り除くために大量のブロック リクエストを作成したかったからです。重要なのは、アプリケーションで使用する一意のキーのセットを取得することです。
したがって、アプリケーションを作成するポイントは、自分自身 (および Twitter) に一連のキーを与えることです。これらは:
- コンシューマ キー
- 消費者の秘密
- アクセストークン
- アクセス トークン シークレット
これらのトークンの目的に関する情報が少しあります。
3. アクセス トークンの作成: リクエストを成功させるには、これらが必要になります。
OAuthはいくつかのトークンを要求します。したがって、それらを生成する必要があります。
下部にある「アクセス トークンを作成する」をクリックします。次に、もう一度一番下までスクロールすると、新しく生成されたキーがいくつか表示されます。API 呼び出しのために、このページから以前にラベル付けされた 4 つのキーを取得する必要があるため、それらをどこかにメモしておいてください。
4. アクセス レベルの変更: 読み取り専用にしたくありませんね。
この API を適切に使用するには、 GET要求を使用した標準的なデータ取得以外のことを行う場合は、設定を読み取りと書き込みに変更する必要があります。
ページの上部にある [設定] タブを選択します。
アプリケーションに読み取り/書き込みアクセスを付与し、下部にある [更新] をクリックします。
Twitter が使用するアプリケーション許可モデルの詳細については、こちらをご覧ください。
5. API にアクセスするためのコードを作成します。ほとんどの作業は私が行いました。
上記のコードをいくつかの修正と変更を加えて PHP クラスに結合したので、必要な要求を非常に簡単に行うことができます。
これは、 OAuthとTwitter v1.1 API、および以下にある私が作成したクラスを使用します。
require_once('TwitterAPIExchange.php');
/** Set access tokens here - see: https://dev.twitter.com/apps/ **/
$settings = array(
'oauth_access_token' => "YOUR_OAUTH_ACCESS_TOKEN",
'oauth_access_token_secret' => "YOUR_OAUTH_ACCESS_TOKEN_SECRET",
'consumer_key' => "YOUR_CONSUMER_KEY",
'consumer_secret' => "YOUR_CONSUMER_SECRET"
);
上記のアプリケーションから取得したキーをそれぞれのスペースに配置してください。
次に、リクエストを送信する URL を選択する必要があります。Twitter には、URL と要求タイプ (POST または GET) を選択するのに役立つAPI ドキュメントがあります。
/** URL for REST request, see: https://dev.twitter.com/docs/api/1.1/ **/
$url = 'https://api.twitter.com/1.1/blocks/create.json';
$requestMethod = 'POST';
ドキュメントでは、各 URL に何を渡すことができるかが示されています。上記のような「ブロック」URL を使用している場合は、次の POST パラメーターを渡すことができます。
/** POST fields required by the URL above. See relevant docs as above **/
$postfields = array(
'screen_name' => 'usernameToBlock',
'skip_status' => '1'
);
API で何をしたいのかを設定したので、実際のリクエストを行います。
/** Perform the request and echo the response **/
$twitter = new TwitterAPIExchange($settings);
echo $twitter->buildOauth($url, $requestMethod)
->setPostfields($postfields)
->performRequest();
POSTリクエストの場合は、それだけです。
GETリクエストの場合は少し異なります。次に例を示します。
/** Note: Set the GET field BEFORE calling buildOauth(); **/
$url = 'https://api.twitter.com/1.1/followers/ids.json';
$getfield = '?username=J7mbo';
$requestMethod = 'GET';
$twitter = new TwitterAPIExchange($settings);
echo $twitter->setGetfield($getfield)
->buildOauth($url, $requestMethod)
->performRequest();
最終的なコード例: フォロワーのリストに対する単純な GET リクエストの場合。
$url = 'https://api.twitter.com/1.1/followers/list.json';
$getfield = '?username=J7mbo&skip_status=1';
$requestMethod = 'GET';
$twitter = new TwitterAPIExchange($settings);
echo $twitter->setGetfield($getfield)
->buildOauth($url, $requestMethod)
->performRequest();
これらのファイルは、@lackovic10 と @rivers の功績により GitHubに掲載しました。誰かが役に立つことを願っています。私がしたことは知っています(ループでの一括ブロックに使用しました)。
また、Windows で SSL 証明書に問題がある場合は、この投稿を参照してください。このライブラリは内部で cURL を使用するため、cURL 証明書が設定されていることを確認する必要があります。グーグルもあなたの友達です。