Twitter 获取1.1-410消失时的用户跟随者计数

Twitter 获取1.1-410消失时的用户跟随者计数,twitter,twitter-oauth,php,Twitter,Twitter Oauth,Php,我试图建立一个“跟随”按钮,上面有一个垂直的跟随者计数。我有一个解决方案,直到Twitter今天退出1.0API,现在需要Oauth解决方案。我的问题是,这方面最好、最简单的解决方案是什么(最好是JS) 这是老办法 $.getJSON("https://api.twitter.com/1/users/show.json?callback=?&screen_name=twitter", function(data) { $('.here').text(data); }); 我

我试图建立一个“跟随”按钮,上面有一个垂直的跟随者计数。我有一个解决方案,直到Twitter今天退出1.0API,现在需要Oauth解决方案。我的问题是,这方面最好、最简单的解决方案是什么(最好是JS)

这是老办法

$.getJSON("https://api.twitter.com/1/users/show.json?callback=?&screen_name=twitter",

function(data) { 
    $('.here').text(data);
});
我现在得到的错误是什么

GET https://api.twitter.com/1/users/show.json?callback=jQuery20205200183007400483_1371012819892&screen_name=twitter&_=1371012819893 410 (Gone) 
首先,根据:

不鼓励您通过客户端Javascript执行OAuth操作。您应该在服务器端执行这些请求。如果您希望用户交互更加客户端化,那么AJAX调用可能应该是对您自己的后端的安全调用,以启动推文过程

没有任何简单的方法可以通过AJAX执行对新1.1API的客户端请求。您应该使用一些服务器端语言来执行此事务,如


您将从他们的API获得
410(消失)
响应代码。让我们看看这到底意味着什么:

表示请求的资源不再可用,将不再可用。当资源已被故意删除且应清除时,应使用此选项。收到410状态代码后,客户端今后不应再次请求资源。[强调我自己]

现在让我们来看一下最新的推特API新闻:

截至昨天(2013年6月11日),之前不推荐使用的v1.0 API已退役。这意味着资源将不再可用,您需要继续使用v1.1 API

v1.1 API需要经过身份验证的请求,通常使用OAuth或“特定于应用程序的”

不知道为什么,但你已经发布了最多的评论,但是的,这是我写的一篇文章,旨在帮助大家过渡到twitter API的v1.1版

您的回答:
GEThttps://api.twitter.com
/1/
[Emphasis my own]
在URL中包含API版本

最后,任何带有/1/而不是/1.1/的twitter url将不再接受任何请求,并且您将始终得到
410(消失)
响应。是时候升级到1.1了

我关注。并获取推特关注人数

使用此代码

$url = 'https://api.twitter.com/1.1/statuses/user_timeline.json';
$getfield = '?screen_name=Android';
$requestMethod = 'GET';
$twitter = new TwitterAPIExchange($settings);
$follow_count=$twitter->setGetfield($getfield)
             ->buildOauth($url, $requestMethod)
             ->performRequest();
            $testCount = json_decode($follow_count, true);
echo "<pre>";
echo $testCount[0]['user']['followers_count'];
echo "</pre>";
$url='1!'https://api.twitter.com/1.1/statuses/user_timeline.json';
$getfield='?屏幕名称=Android';
$requestMethod='GET';
$twitter=newtwitterapiexchange($settings);
$follow\u count=$twitter->setGetfield($getfield)
->buildOauth($url,$requestMethod)
->performRequest();
$testCount=json\u decode($follow\u count,true);
回声“;
echo$testCount[0]['user']['followers_count'];
回声“;
您可以更改“屏幕名称”并获得跟随者计数


干杯。

由于Twitter停止提供一种API,而这种API对于获取追随者数量等简单的只读操作不需要身份验证,因此它们应该被废弃

我们将获取用户的Twitter页面,然后解析出关注者数量。这也仅适用于客户端,不受相同来源限制:

函数getFollowerCount(用户名,回调){ $.getJSON(“https://query.yahooapis.com/v1/public/yql?q=select%20*%20从%20html%20其中%20url%3D'http%3A%2F%2Ftwitter.com%2F“+用户名+”'%20和%20xpath%3D'%2F%2F输入%5B%40id%3D%22init数据%22%5D'&格式=json&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys',函数(数据){ 回调(data.query.results.input.value.match(/followers\u count):(\d+/)[1]); }); } getFollowerCount('dandv',函数(计数){ $(“#跟随者计数”)。文本(计数) });


感谢您提供的详细答案和您编写的php助手。我环顾了一下四周,这是启动并运行它的最简单解决方案。@Ryanglush无需担心。为API创建一个包含大量快捷方法的复杂库是毫无意义的。简单的单个文件应该包括:)是的,我不同意more、 我希望有更多的人这样做。再次感谢!这对于一个单一的关注者数量来说是非常复杂的。至少Facebook允许公众访问。那么为什么我不获取html页面来获取关注者的数量呢?它至少可以在没有身份验证的情况下工作!@AugustinRiedinger,因为如果你正在抓取一个网页,n你不仅违反了他们的ToS(如果他们检测到你的流量过多,就禁止你),而且这也是一种不好的做法——如果他们随时更改标记,你的脚本将停止工作。这也是非常低效的。请正确地执行。