【问题标题】:Problem with twitter API: cannot update statustwitter API 问题:无法更新状态
【发布时间】:2013-02-01 19:08:11
【问题描述】:

我正在尝试创建 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);

我做错了吗?我正在使用基本身份验证。我使用this tool 进行编码,然后只放置结果而不是“用户凭据”部分。另外,有人可以给我一个 OAuth 的例子吗?

【问题讨论】:

  • 如果我的回答对您有帮助,请告诉我:-)
  • 你使用client.setRequestHeader("Authorization", "Basic" + Base64.encode("user:password")); ? (冒号很重要……)

标签: javascript api twitter


【解决方案1】:

我已经发布了问题所在,但由于某种原因,该帖子丢失了。没关系,事情是这样的: 我在第一篇文章中给出的代码示例是正确的,但是我在清单文件中犯了一个错误。清单文件包含“权限”部分——我需要列出扩展程序将要使用的所有链接。我忘了列出“http://api.twitter.com”,这就是问题所在。当我添加该链接时,一切都开始工作了。感谢您的建议和回复。

【讨论】:

    【解决方案2】:

    你也应该能够做到:

    client.open("POST","https://screen_name:password@api.twitter.com/1/statuses/update.json");
    

    不用担心更改请求标头。

    【讨论】:

      【解决方案3】:

      请先使用/account/verify_credentials检查您的身份验证,您可能编码错误,或者密码错误。

      【讨论】:

      • 我尝试了您的解决方案 - 我仍然收到 403 响应代码。要么我经常在身份验证标头上犯一些错误,要么是其他错误:(
      猜你喜欢
      • 2016-03-12
      • 2012-01-11
      • 2010-11-01
      • 1970-01-01
      • 2011-05-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-01
      相关资源
      最近更新 更多