我试图使用基于this tutorial的AngularJS对Twitter API做一个简单的请求,我收到此错误:
"GET http://search.twitter.com/search.json?callback=angular.callbacks._0&q=angularjs 401 (Authorization Required)"
代码:
$scope.twitter = $resource('http://search.twitter.com/:action',
{action:'search.json', q: 'angularjs', callback:'JSON_CALLBACK'},
{get:{method:'JSONP'}}
);
是否与以下声明有关(取自Twitter API docs)?
401 - Unauhtorized - (...)在其他情况下也返回,例如对API v1的所有调用 端点现在返回401(改为使用API v1.1)。
为什么会出现此错误?通过使用http://search.twitter.com
作为资源,这是否意味着我使用的是最新的API(v1.1)?我可以选择访问哪种API吗?怎么样?
如果我使用http://api.twitter.com
作为资源,我会收到403错误:
Failed to load resource: the server responded with a status of 403 (Forbidden)
,根据Twitter API docs,暗示
(...) This code is used when requests are being denied due to update limits.
这没有意义,因为我只尝试了几十次......我很困惑。
由于
答案 0 :(得分:1)
您好我刚刚自己完成了Twitter API的集成,我就这样做了:
<强> twitter.php:强>
include_once "lib/twitteroauth.php";
class Twitter {
private $consumerKey = "YourConsumerKey";
private $consumerSecret = "YourConsumerSecret";
private $token = "AppToken";
private $tokenSecret = "AppTokenSecret";
function __construct() {
if(isset($_GET['page'])) {
$this->getTweets($_GET['page']);
}
}
//In my case i just wanted to get Tweets
private function getTweets ($page) {
$connection = $this->getConnectionWithAccessToken();
echo json_encode($connection->get("statuses/user_timeline", array("count" => 5, "page" => $page)));
}
private function getConnectionWithAccessToken() {
return new TwitterOAuth($this->consumerKey, $this->consumerSecret, $this->token, $this->tokenSecret);
}
}
$twitter = new Twitter();
Angular Service / Factory:
var url = "http://yourwebsite.com/twitter.php";
var page = 1;
$http.get(url, {
params: {
page : page //Optional params, but necesary for the example to work
}
})
.success(function (response) {
//Do something with the response
page++;
});
就是这样,只需添加你的私人日期,例如consumerKey和Token,它就会起作用(在这个例子中调用API来获取一些推文)。对于其他API命令,请参考来自twitter的API文档,您可以找到HERE
古德勒克
答案 1 :(得分:0)
不知道这是否有用,但是在开始编写代码之前,Twitter有一个很棒的工具来探索twiiter API。 Twitter Console。显然在控制台上进行粗略搜索会向您显示需要授权。作为一个加号,它会向您显示Twitter API对您的查询的响应等。如果你想要我的具体细节,这可能非常有用。