我正在尝试创建Google Chrome扩展程序,该扩展程序会向twitter发送有趣的链接。但是,我无法连接到Twitter。服务器获取我的请求,但响应始终相同:“您无权访问此服务器上的/1/statuses/update.json(403 Forbidden)。”我正在使用Wireshark来检查Http响应。这是我正在使用的函数的代码:
function setStatus(msg) {
var status = "status="+msg;
var client = new XMLHttpRequest();
client.open("POST","http://api.twitter.com/1/statuses/update.json");
client.setRequestHeader("Authorization", "Basic <user credentials>");
client.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
client.onreadystatechange = function(){
if(client.readyState ==4){
//whatever
}
}
client.send(status);
我做错了吗?我正在使用Basic Auth。我使用this tool进行编码,只是将结果放在“用户凭据”部分。另外,有人可以给我一个OAuth的例子吗?
答案 0 :(得分:1)
我已经发布了问题所在,但由于某种原因,该帖子丢失了。没关系,这是发生的事情: 我在第一篇文章中给出的代码示例是正确的,但我在清单文件中犯了一个错误。清单文件包含“权限”部分 - 我需要列出扩展将要使用的所有链接。我忘了列出“http://api.twitter.com”,这就是问题所在。当我添加该链接时,一切都开始工作了。感谢您的建议和回应。
答案 1 :(得分:0)
首先使用/account/verify_credentials
检查您的身份验证,您可能在编码时遇到了一些错误,或者密码错误。
答案 2 :(得分:0)
您还应该能够:
client.open("POST","https://screen_name:password@api.twitter.com/1/statuses/update.json");
并且不用担心更改请求标头。