想要使用rest api在linkedin中使用id获取用户数据

时间:2015-04-23 11:56:47

标签: arrays oauth-2.0 linkedin

我正在使用Linkedin Oauth 2.0。这里我在下面的代码中获取令牌,下一步是我想要获取其电子邮件ID我将要传递的用户的信息。但它的错误无法加载资源错误:500。

以下是代码:

 chrome.identity.launchWebAuthFlow({
    "url": " https://www.linkedin.com/uas/oauth2/authorization?&response_type=code&client_id=" + clientid + 
                "&redirect_uri=" + encodeURIComponent(redirectUri) +
                "&state=121212121"

                  ,'interactive': true,  
                },
                function(redirect_url) { 
                    var pairs = redirect_url.split('/');
                    var values = {};
                    var code1 = redirect_url.split('?');
                    var code2 = code1[1].split('&');
                    var code3 = code2[0].split('=');
                    var actualCode = code3[1];// actual code obtained in request
                    var deferred = $q.defer();
                    var req = {
                        method: 'POST',
                        url: 'https://www.linkedin.com/uas/oauth2/accessToken?&grant_type=authorization_code&code=' + actualCode + 
                        '&redirect_uri='+ redirectUri + '&client_id=' + clientid + '&client_secret=' + clientSecretKey,
                        headers:{
                            'Access-Control-Expose-Headers': 'X-My-Custom-Header, X-Another-Custom-Header'
                        } 
                    }
                    $http(req).then(function(data){
                        deferred.resolve(data);
                        console.log("deferred.resolve(data)"+ data.data.access_token ); // gives the token generated

                        var req2 = {
                            method: 'GET',
                            url: 'https://api.linkedin.com/v1/people/email=xxxx@gmail.com:(first-name,last-name)?format=json',
                            headers :{
                                'oauth_token': data.data.access_token,
                                'x-li-format': 'json'
                            }
                        }
                        $http(req2).then(function(data1){
                            deferred.resolve(data1);
                            console.log("sndsnd");
                            console.log("deferred.resolve(data)"+ data1.data );
                        });
                    });
                }
            );

1 个答案:

答案 0 :(得分:3)

您无需为基本配置文件数据指定电子邮件和字段。使用

url : https://api.linkedin.com/v1/people/~?format=json

以及使用“r_basicprofile”权限的正确accessstoken获取firstName,lastName,id,headline和siteStandardProfileRequest等基本详细信息。

要检索其他个人资料字段,请使用

url : https://api.linkedin.com/v1/people/~:(id,num-connections,picture-url)?format=json

对于使用“r_basicprofile”权限的可用个人资料字段,请选中https://developer.linkedin.com/docs/fields/basic-profile

有关用户的完整个人资料详情,您的应用需要从Linkedin访问才能使用“使用Linkedin申请”

https://developer.linkedin.com/docs/fields/full-profile

https://developer.linkedin.com/docs/apply-with-linkedin

申请使用Linkedin申请表:

https://help.linkedin.com/app/ask/path/api-dvr