我有一个非常简单的代码片段,直到昨天才工作,今天停止工作了?
var url = 'http://search.twitter.com/search.json?q=dogs?callback=?';
var reddit = 'http://reddit.com/r/technology.json?callback=?';
$.getJSON(url, function(data) {
console.log(data);
});
//Error - GET http://search.twitter.com/search.json?q=dogs?callback=jQuery172082220473815687_1365829251904&_=1365829251949 403 (Forbidden)
这是来源 - http://jsfiddle.net/ZeuKp/2
谁能告诉我为什么会出现 403 错误。我是否超过了 API 的速率,这似乎不太可能,因为我刚刚打开本地服务器?
谢谢!
我已经通过将消息字符长度减少到 140 来解决这个问题。如此处定义https://dev.twitter.com/overview/api/counting-characters。
您还可以通过将 TwitterException 转换为 TwitterApiException 来检查 errrorCode 和 errorMessage。
statusesService.update(newMessage, null, null, null,
null, null, null, null, null, new Callback<Tweet>() {
@Override
public void success(Result<Tweet> result) {
Debugger.i("success", result.toString());
}
@Override
public void failure(TwitterException e) {
TwitterApiException twitterApiException = (TwitterApiException) e;
Debugger.e("failure", "getErrorCode() : " + twitterApiException.getErrorCode());
Debugger.e("failure", "getErrorMessage() : " + twitterApiException.getErrorMessage());
}
});
1 月 14 日,Twitter 进行了更改,以便在使用其 API 时仅允许 SSL/HTTPS 连接。
403 错误是您的应用程序中尚未切换到 SSL/HTTPS 的常见迹象。
http://www.zdnet.com/twitter-enforces-ssl-encryption-for-apps-connecting-to-its-api-7000025138/
还有一点。 如果您使用的是 API v1,例如像这个库 https://github.com/twitter/hbc 用于访问流 API (https://stream.twitter.com)。
您的项目需要具有提升访问权限,并且您需要申请它,因为最初它只有基本访问权限。申请是免费的。
您可以在此处检查您的项目是否具有提升访问权限 https://developer.twitter.com/en/portal/products/elevated
非常非常非常重要:您需要在您的 Twitter 开发帐户中申请“提升”访问权限。