最近 Twitter 将其 API 更新到 v1.1,我的程序停止工作,但无论我阅读了多少文档,我似乎都无法真正理解使我的代码工作需要什么。
我常用的工作代码如下:
function getTweets() {
var url = 'http://search.twitter.com/search.json?q=%23yolo&rpp=10&result_type=recent&callback=?';
$.getJSON(url, function (json) {
display = [];
displayDateTime = [];
if (json.results.length != null) {
for (var i = 0; i < json.results.length; i++) {
var time = new Date(json.results[i].created_at);
display.push("@" + json.results[i].from_user + ": " + json.results[i].text);
displayDateTime.push("[" + time.toString().substring(0, 19) + "]");
} //end of for loop
display.reverse();
displayDateTime.reverse();
loadOtherStuffs();
} //end of if
else {
setTimeout(getTweets, 24000);
}
}); //end of getJSON
}//end of getTweets()
我尝试将 url 更改为 https://api.twitter.com/1.1/search/tweets.json和 json.results
到 json.statuses
但它仍然无法正常工作。似乎需要 oAuth
才能使这项工作再次正常进行,但我不太确定。
使这项工作再次发挥作用的具体步骤是什么?
最佳答案
它不起作用的原因
在充满坏主意的奇妙世界中,Twitter 将在 2013 年 5 月取消这个答案,并且至少要求您使用他们的一个小部件并将其塞进,或者您设置启动应用程序并进行应用程序级身份验证,即使是公共(public)时间线 GET 请求也是如此。
[ From this post ]
这是完全正确的。您要么使用他们的 wigets“破解”一些东西(非常气馁,如果他们更改了他们的 widget 中的一行代码,您的代码将完全停止工作),或者您按照他们的建议升级到使用 OAuth 和 1.1 API 的经过身份验证的请求。
您必须阅读的链接
因此,您不能只是将 URL 中的 /1/ 更改为 /1.1/ 并期望它起作用。
This post解释 1.0 API 如何被弃用,提供来自 Twitter 站点的证据,并解释您需要如何执行经过身份验证的请求。
This post有一些关于 1.1 API 以及它如何返回 JSON 格式数据的信息。
This post解释如果您从现在开始尝试向 1.0 API 发出任何请求,您将如何获得 410 GONE
状态,以及这意味着什么。
This post解释你得到的错误意味着什么
...最后,This post如果您选择使用 php,将逐步说明如何操作作为您的服务器端语言,您发出经过身份验证的请求并需要一个简单的库(包含单个文件)才能使其正常工作。
收盘中
不要使用 JavaScript 将某些东西组合在一起,只要 Twitter 更新了他们的小部件,就是这样,你就完蛋了。使用服务器端语言并按照他们的 documentation 正确执行.
关于javascript - 需要帮助转换为 Twitter API v1.1 - JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17207850/