兴访问用户档案API

时间:2014-12-03 08:42:03

标签: javascript node.js xing

我需要从服务器端访问XING用户配置文件信息。我有用户访问令牌和秘密。尝试使用以下代码来获取用户信息。但是我收到了一些错误消息

尝试

request.get( 
            {
                url: "https://api.xing.com/v1/users/me",
                qs: {
                    format: 'json',
                    access_token: "2f3306da6d7b8dc82a33",
                    access_token_secret: "0b3f2ab9fd8ee486b642"
                }
            },
            function(err, resp, body) {
                if (err) {
                    return next(err);
                }
                try {

                    if (resp.statusCode === 200) {
                        console.log('inside status code 200');
                        res.json({
                            status: 200,
                            info: "OK",
                            uri: req.param('uri')
                        });
                    } else {
                        console.log('xing response', resp.body);
                        res.json({status: resp.statusCode, info: resp.body});
                    }
                } catch(err){
                    console.log('add connection catch');
                    res.json({status: 500, info: err.message}); 
                }

            }
        );

错误消息 信息:" {"消息":"无效的OAuth签名"," error_name":" INVALID_OAUTH_SIGNATURE"}" 请帮我解决这个问题。

谢谢。

2 个答案:

答案 0 :(得分:1)

您必须传递更多查询参数,例如

  1. oauth_signature_method
  2. oauth_timestamp
  3. oauth_nonce
  4. oauth_version
  5. oauth_signature
  6. 我不知道如何获得这些价值......

答案 1 :(得分:1)

The code i used....

var oauthSignature=require('oauth-signature');

var httpMethod='GET';
var url='https://api.xing.com/v1/users/me';
var nonce=Math.random().toString(36).substring(5);
var timestamp=Date.now();

var parameters = {
'fields':'your fields here',
'oauth_consumer_key':'xxxxxxxx',
'oauth_token':'xxxxxxxx',
'oauth_signature_method':'HMAC-SHA1',
'oauth_timestamp':timestamp,
'oauth_nonce':nonce,
'oauth_version':'1.0',
}
consumerSecret='xxxxxxxxx';
tokenSecret='xxxxxxxxx';
signature = oauthSignature.generate(httpMethod, url, parameters, consumerSecret, tokenSecret,
        { encodeSignature: false});
parameters['oauth_signature']=signature;
request('https://api.xing.com')
        .get('/v1/users/me')
        .query(parameters)
        .end(onResponse);
function onResponse(err,res){
    if(err) {
        throw err;
    }
    console.log('body contents', res.body);

}