1

https://github.com/abraham/twitteroauthを使用:

function getTwitterFeed($token_array){
    require_once('twitteroauth/twitteroauth.php');
    $oauth_token = $token_array['access_token'];
    $oauth_token_secret = $token_array['access_token_secret'];
    $connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, $oauth_token, $oauth_token_secret);
    $response = $connection->get("statuses/user_timeline");

    //...do stuff with the response
}

認証の問題 (無効なトークンまたはトークン シークレット) および/または「レート制限を超えた」というエラーまたは例外をキャッチしたいと考えています。

このライブラリのエラー処理に関する情報はどこにもありません。どうすればこれを達成できますか?

4

1 に答える 1

2

PHPマニュアルの例外部分を調べてください。ライブラリはそれらを広範囲に使用しています。

基本的に、それらは次のようになります。

try {
    // your code here
} catch (OAuthException $e) {
    // your error handling here
}

クラスは、OauthExceptionライブラリがスローごとに使用するものです。

編集0:

残念ながら、実際の twitter API から返されたエラーはライブラリによって例外に変換されないため、get() およびその他の呼び出しからの戻り値を確認し、「エラー」キーを探す必要があります。エラーは次のようになります。

object(stdClass)[5]
   public 'error' => string 'Could not authenticate you.' (length=27)
   public 'request' => string '/1/account/verify_credentials.json?aauth_consumer_key=CONSUMER_KEY_HERE&oauth_nonce=cfbf6a55b26683750a166f14aeb5ed84&oauth_signature=c96MciQcODQD5jUAkyrAmSxXa0g%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1342379970&oauth_token=alma&oauth_version=1.0' (length=258)

また、API インスタンスの http_code コード プロパティを応答の http ステータスに設定します。200 でない場合はエラーを示します。

編集1:

200 以外の HTTP ステータスを返すすべてのリクエストに対して例外を生成するライブラリのフォークを作成しました。例外のコードは twitter が返す http ステータスになり、メッセージはメッセージ (存在する場合) になります。twitter のhttp エラー コード リストは次のようになります。エラーの解読に役立ちます。

また、便宜上、 という名前の新しい Exception サブクラスも導入されTwitterOauthExceptionました。ライブラリによってスローされるすべての例外は、このクラスのサブクラスになります。

于 2012-07-15T18:17:19.217 に答える