使用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
}
我想捕捉身份验证问题(无效令牌或令牌机密)和/或"超出速率限制"的错误或异常。
我在任何地方都找不到有关此库错误处理的任何信息。我怎样才能做到这一点?
查看PHP手册的Exceptions部分,库会广泛使用它们。
基本上它们看起来是这样的:
try {
// your code here
} catch (OAuthException $e) {
// your error handling here
}
CCD_ 1类是库每次投掷所使用的类。
第0版:
不幸的是,从实际的twitter API返回的错误没有被库转换为异常,因此您必须检查get()和其他调用的返回值,并查找"error"键,错误将如下所示:
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实例的httpcode代码属性设置为响应的http状态,如果不是200,则表示错误。
第1版:
我已经创建了一个库的分支,它将为每个返回非200 HTTP状态的请求生成异常,异常的代码将是twitter返回的HTTP状态,消息就是消息(如果存在),twitter的HTTP错误代码列表将帮助解码错误。
为了方便起见,还引入了一个名为TwitterOauthException
的新异常子类,库引发的每个异常都将这个异常子类化。