Twitter使用OAuth.js库进行更新/状态时“签名不正确”

时间:2010-09-06 14:32:10

标签: oauth

当我从我的应用程序向我的Twitter帐户发布更新时,Twitter Api收到“不正确的签名”错误。 我使用的是javascript OAuth库oauth.js。

这是我的代码:

consumer.Name =
{ consumerKey   : "xxxxxxxdwcececwscwdc",
  consumerSecret: "xxrtbujztvfdtcehz5tjv6uvjxbzuku7ik",
  serviceProvider:{  
     signatureMethod     : "HMAC-SHA1"
   , requestTokenURL     : "https://api.twitter.com/oauth/request_token"
   , userAuthorizationURL: "https://api.twitter.com/oauth/authorize"
   , accessTokenURL      : "https://api.twitter.com/oauth/access_token"
   , echoURL             : "myApp.html"
 }
}

function postTweet(consumerName, twitterText){

var accessor = consumer[consumerName];

message = {method: "POST",action: "http://api.twitter.com/1/statuses/update.json", 
parameters:{
   oauth_token: my_oauth_token// <-- here is the current oauth_token
   status: twitterText,
 }
}; // end of message

OAuth.completeRequest(message,
 {
   consumerKey : accessor.consumerKey,
   consumerSecret : accessor.consumerSecret
 }
);



var authorizationHeader = OAuth.getAuthorizationHeader("", message.parameters);
var requestBody = OAuth.formEncode(message.parameters);
var postTweetText = newXMLHttpRequest();
postTweetText.onreadystatechange = function receiveAccessToken(){
if (postTweetText.readyState == 4) {
blabla
}
netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
postTweetText.open(message.method, message.action, true);
postTweetText.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

postTweetText.setRequestHeader("Authorization", authorizationHeader);//;

postTweetText.send(requestBody);//requestBody

} }

我做错了什么?

}

1 个答案:

答案 0 :(得分:0)

在这个问题上进展得相当晚,但希望这会导致有类似问题的人找到解决方案。

我有相同的回复,但这是因为我使用不同的应用设置了OAuth,保存了这些凭据,然后尝试在Twitter上发布到其他注册的应用。因此,签名不正确,因为我试图使用其他应用程序的凭据进行身份验证。

通过修改二进制文件并进行清理/构建来修复。