我尝试从Twitter获取请求令牌,以便我使用Twitter进行登录, 当我使用以下代码时,它给我400错误。任何人都可以指导我修复此错误...提前感谢!
$http({
method: 'POST',
url: "https://api.twitter.com/oauth/request_token",
cache: $templateCache,
headers: $scope.headerObj
}).
success(function(data, status) {
alert('success');
}).
error(function(data, status) {
alert("Request failed");
});
我的$ scope.headerObj是使用
生成的var str32 = randomString(32);
console.log('32 bit random string:' + str32);
var b64 = btoa(str32);
console.log('base 64 random string:' + b64);
var timestamp = Math.floor(Date.now() / 1000);
var encoded_nonce = b64.to_rfc3986();
console.log('encoded_nonce:' + encoded_nonce);
var httpMethod = 'POST';
var url = 'https://api.twitter.com/oauth/request_token';
var parameters = '';
var consumerSecret = {
oauth_consumer_key: 'XXXXXX',
oauth_token: 'XXXXXX',
oauth_nonce: b64,
oauth_timestamp: timestamp,
oauth_signature_method: 'HMAC-SHA1',
oauth_version: '1.0'
};
var signature = oauthSignature.generate(httpMethod, url, parameters, consumerSecret);
console.log(signature);
var parameter_obj = [{
key: 'oauth_consumer_key',
val: 'XXXXXX'
}, {
key: 'oauth_nonce',
val: b64
}, {
key: 'oauth_signature',
val: signature
}, {
key: 'oauth_signature_method',
val: 'HMAC-SHA1'
}, {
key: 'oauth_timestamp',
val: "'" + timestamp + "'"
}, {
key: 'oauth_token',
val: 'XXXXXX'
}, {
key: 'oauth_version',
val: '1.0'
}];
var DST = "OAuth ";
for (i = 0; i < parameter_obj.length; i++) {
if (i != 0) DST = DST + ",";
DST = DST + parameter_obj[i].key.to_rfc3986() + '="' + parameter_obj[i].val.to_rfc3986() + '"';
}
$scope.headerObj = {
Authorization: $scope.DST
};