【问题标题】:Setting headers in Twitter API POST在 Twitter API POST 中设置标题
【发布时间】:2016-03-01 14:30:50
【问题描述】:

我正在尝试使用 POST statuses/update Twitter API 调用。我是新手,所以请多多包涵:)。正如doc 中所述,我一直在尝试设置标头以使用仅应用程序身份验证。

到目前为止我尝试过的如下:

    $(".tweet-later").on("click", function(event){
    $.ajax({
         url: "https://api.twitter.com/1.1/statuses/update.json",
         data: { status: "Testing"},
         type: "POST",
         dataType: 'json',
         beforeSend: function(xhr){
           xhr.setRequestHeader('Authorization', 'Rm5DVHpIc2M2ejRpeDRQRDRdfdsjprbjB5TENzeEZQNnhza2NFMzB6dnJMbnI2aENlRUZSczdOZUtWZUhaREhXSFVCY3dQWA==');
           xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;charset=UTF-8');
         },
         success: function(data) { alert('Tweeted!'); },
        error:function(exception){alert('Exeption:'+exception);}
      });
  }); 

我不断收到错误消息:“身份验证失败”。非常感谢所有帮助。

提前非常感谢您。

【问题讨论】:

  • 当只点击应用程序的端点,例如https://api.twitter.com/1.1/statuses/user_timeline.json,授权标头必须包含Bearer。在您的情况下,您向其发送请求的端点不接受仅应用程序身份验证,但是如果它确实设置了身份验证标头,您希望如下:xhr.setRequestHeader('Authorization', 'Bearer Rm5DVHpIc2M2ejRpeDRQRDRdfdsjprbjB5TENzeEZQNnhza2NFMzB6dnJMbnI2aENlRUZSczdOZUtWZUhaREhXSFVCY3dQWA==');

标签: javascript jquery twitter twitter-oauth


【解决方案1】:

你想做的事是不可能的。

正如它所说的in the documentation

使用仅应用程序身份验证发出请求时,没有“当前用户”的概念。因此,POST statuses / update 等端点将无法与仅应用程序身份验证一起使用。有关代表用户发出请求的更多信息,请参阅使用 OAuth。

【讨论】:

    猜你喜欢
    • 2010-12-28
    • 2016-09-10
    • 1970-01-01
    • 2013-06-18
    • 1970-01-01
    • 2013-03-12
    • 1970-01-01
    • 2021-03-05
    • 2014-01-12
    相关资源
    最近更新 更多