Twitter API バージョン 1.1 で user_timeline を取得するための最も簡単な PHP の例 質問する

Twitter API バージョン 1.1 で user_timeline を取得するための最も簡単な PHP の例 質問する

Twitter API 1.0が廃止されたため2013年6月11日、以下のスクリプトは動作しなくなりました。

// Create curl resource 
$ch = curl_init(); 
// Set url 
curl_setopt($ch, CURLOPT_URL, "http://twitter.com/statuses/user_timeline/myscreenname.json?count=10"); 
// Return the transfer as a string 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
// $output contains the output string 
$output = curl_exec($ch); 
// Close curl resource to free up system resources 
curl_close($ch);

if ($output) 
{
    $tweets = json_decode($output,true);

    foreach ($tweets as $tweet)
    {
        print_r($tweet);
    }
}

できるだけ少ないコードで user_timeline (最近のステータス) を取得するにはどうすればよいですか?

私はこれを見つけました:https://dev.twitter.com/docs/api/1.1/get/statuses/user_timelineしかし、次のエラーが発生します。

"{"errors":[{"message":"Could not authenticate you","code":32}]}"

世の中にはたくさんのクラスがありますが、いくつか試してみたところ、Twitter のアップデートのせいでどれも機能しないようです。さらに、それらのいくつかは、実際には必要のない多くの機能を備えたかなり高度なクラスです。

PHP を使用して最近のユーザー ステータスを取得する最も簡単/最短の方法は何ですか?

ベストアンサー1

重要な注意: 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では無理です。twitter.com/apps/apps_ja より「アプリケーションの作成」ボタンをクリックします。

ここに画像の説明を入力してください

このページで、必要な詳細をすべて入力します。私の場合は、スパム フォロワーを排除するために大量のブロック リクエストを発行したかっただけなので、詳細を入力する必要はありませんでした。重要なのは、アプリケーションで使用する一意のキー セットを取得することです。

したがって、アプリケーションを作成するポイントは、自分自身 (および Twitter) に一連のキーを与えることです。これらは次のとおりです。

  • 消費者キー
  • 消費者の秘密
  • アクセストークン
  • アクセストークンシークレット

ちょっとした情報がありますこここれらのトークンの用途について。

3. アクセストークンを作成する: リクエストを成功させるにはアクセストークンが必要です

オーソリティいくつかのトークンを要求します。そのため、トークンを生成する必要があります。

ここに画像の説明を入力してください

下部にある「アクセス トークンを作成」をクリックします。次に、もう一度一番下までスクロールすると、新しく生成されたキーがいくつか表示されます。API 呼び出しには、このページから以前にラベル付けされた 4 つのキーを取得する必要があるため、どこかにメモしておいてください。

4. アクセス レベルを変更する: 読み取り専用にはしたくないですよね?

このAPIを適切に使用したい場合は、標準的なデータ取得以外の操作を行う場合は、設定を読み取りと書き込みに変更する必要があります。得るリクエスト。

ここに画像の説明を入力してください

ページ上部の「設定」タブを選択します。

ここに画像の説明を入力してください

アプリケーションに読み取り/書き込みアクセス権を付与し、下部の「更新」をクリックします。

あなたはできるアプリケーション権限モデルの詳細を読むTwitter がここで使用しているものです。


5. APIにアクセスするためのコードを書く:ほとんどの作業は私がやりました

上記のコードにいくつかの修正と変更を加えて PHP クラスに統合したので、必要なリクエストを簡単に実行できます。

これは、OAuthTwitter 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にはAPIドキュメントURL とリクエスト タイプ (POST または GET) を選択するのに役立ちます。

/** 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 に渡すことができる内容が記載されています。上記のような「blocks」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();

そして、役職リクエスト、それだけです!

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();  

これらのファイルをGitHubに置きました@lackovic10 と @rivers に感謝します。誰かにとって役に立つことを願っています。私は役立ちました (ループ内の一括ブロックに使用しました)。

また、WindowsでSSL証明書に問題がある場合は、この郵便受けこのライブラリは内部で cURL を使用するため、cURL 証明書が設定されていることを確認する必要があります。Google も役立ちます。

おすすめ記事