在angularjs中从twitter获取请求令牌

时间:2015-05-27 08:48:52

标签: angularjs twitter access-token

我尝试从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
    };

0 个答案:

没有答案