Search code examples
javascriptnode.jsxing

Xing access user profile API


I have a requirement to access XING user profile information from server side. I have user access token and secret. Trying following code to fetch user info. But am getting some error messages

Tried

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}); 
                }

            }
        );

Error Message info: "{"message":"Invalid OAuth signature","error_name":"INVALID_OAUTH_SIGNATURE"}" Please help me solve this issue.

Thank you.


Solution

  • 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);
    
    }