最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

oauth - Get LinkedIn Access Token with OAuthSimple in Javascript - Stack Overflow

programmeradmin4浏览0评论

I'm using OAuthSimple in Javascript with PIN based authentication (OOB flow). We are developing an HTML5 app which lives inside a mobile device's native wrapper using PhoneGap. There's not ANY server side (no URL at all), all requests are sent using the mobile device as a proxy.

So far I managed to:
- Get Request Token
- Redirect user to authorization page
- Got authorization PIN

I need sample code that shows how to get an Access Token using OAuthSimple Javascript library.
Any help will be appreciated. Thanks!

I'm using OAuthSimple in Javascript with PIN based authentication (OOB flow). We are developing an HTML5 app which lives inside a mobile device's native wrapper using PhoneGap. There's not ANY server side (no URL at all), all requests are sent using the mobile device as a proxy.

So far I managed to:
- Get Request Token
- Redirect user to authorization page
- Got authorization PIN

I need sample code that shows how to get an Access Token using OAuthSimple Javascript library.
Any help will be appreciated. Thanks!

Share Improve this question asked Dec 31, 2011 at 16:44 BertBert 1432 silver badges7 bronze badges
Add a ment  | 

2 Answers 2

Reset to default 6

Not sure if you are the same person who posted on our forums recently (see post here https://developer.linkedin./forum/oauthsimple-request-access-token), but I replied with demo code on how to do just that using OAuthSimple.

The actual sample code can be found here: https://gist.github./efc88a38da25ff4e9283

If you need any help using it, don't hesitate to reach out!

-Jeremy

This will create a phonegap linkedIn login, its just a worked around code though, but this works atleast for me

    var consumer_key = "key";
    var shared_secret = "secrete";
    self.oauth = OAuthSimple(consumer_key, shared_secret);  var linkedInScope = 'r_basicprofile r_emailaddress w_messages r_network';
    var url = self.oauth.sign({action: "GET", path: "https://api.linkedin./uas/oauth/requestToken", parameters: {scope: linkedInScope, oauth_callback: "oob"}}).signed_url;
    var request = 'requestToken';
    var linkedInObj = new Object;
    function linkedInWorkAround(url,request,data){
        var callType = 'GET';
        var xhr = $.ajax({
            url         : url,
            beforeSend  : function(){
                $.mobile.loading( 'show' );
                if(request == 'linkedIn_login'){
                    callType = 'POST';
                }
            },
            timeout     : 8000,
            data        : data,
            type        : callType,
            success: function(r){
                $.mobile.loading( 'hide' );
                if(request == 'requestToken'){
                    var oauthRes = r.split('&');
                    $.each(oauthRes, function(k,v){
                        var resObj = v.split('=')
                        linkedInObj[resObj[0]] = resObj[1];
                    });
                    url = 'https://www.linkedin./uas/oauth/authenticate?scope='+linkedInScope+'&oauth_token='+linkedInObj.oauth_token;
                    request = 'oauth_token';
                    linkedInWorkAround(url,request);
                }
                else if(request == 'oauth_token'){
                    var accessCode = $(r).find('.access-code');
                    if(accessCode.size()){
                        self.oauth.reset();
                        var pin = $(r).find('.access-code').text();
                        url = self.oauth.sign({action: "GET", path: "https://api.linkedin./uas/oauth/accessToken", parameters: {scope: linkedInScope, oauth_verifier: pin}, signatures: linkedInObj}).signed_url;
                        request = 'accessToken';
                        linkedInWorkAround(url,request);
                    }
                    else{

                        $('.custom-linkedIn').remove();
                        var cloneIn = $(r).find('form').addClass('custom-linkedIn').clone();
                        $('a,span,select,.duration-label,.access',cloneIn).hide();
                        $('#pageLinkedIn .errMsgHolder').after(cloneIn)

                        $('#session_key-oauthAuthorizeForm').textinput();
                        $('#session_password-oauthAuthorizeForm').textinput();
                        $('input[type=submit]').button();
                        $('form.custom-linkedIn').submit(function(){
                            $('.errMsgHolder').hide().text('');
                            url = 'https://www.linkedin./uas/oauth/authorize/submit';
                            request = 'linkedIn_login';
                            var data = $(this).serialize();
                            linkedInWorkAround(url,request,data);
                            return false;
                        });
                    }
                }
                else if(request == 'linkedIn_login'){
                    self.oauth.reset();
                    var pin = $(r).find('.access-code').text();
                    url = self.oauth.sign({action: "GET", path: "https://api.linkedin./uas/oauth/accessToken", parameters: {scope: linkedInScope, oauth_verifier: pin}, signatures: linkedInObj}).signed_url;
                    request = 'accessToken';
                    linkedInWorkAround(url,request);
                }
                else if(request == 'accessToken'){
                    var oauthRes = r.split('&');
                    self.oauth.reset(); 
                    $.each(oauthRes, function(k,v){
                        var resObj = v.split('=')
                        linkedInObj[resObj[0]] = resObj[1];
                    });
                    url = self.oauth.sign({action: "GET", path: "https://api.linkedin./v1/people/~/email-address", signatures: linkedInObj}).signed_url;
                    request = 'getResultLinkedIn';
                    linkedInWorkAround(url,request);
                }
                else if(request == 'getResultLinkedIn'){
                    $('body').css({opacity:0});
                    var userLIemail = ($('#session_key-oauthAuthorizeForm').size()) ? $('#session_key-oauthAuthorizeForm').val() : $(r).text();

                }
            },
            error : function(a,b,c){
                alert('err')
                console.log(a,b,c)
                self._cs(a)
                $.mobile.loading( 'hide' );
                if(a.statusText.toLowerCase() == 'unauthorized'){
                    $('.errMsgHolder').show().text('The email address or password you provided does not match our records');
                }
            }
        })
    }
    linkedInWorkAround(url,request);
发布评论

评论列表(0)

  1. 暂无评论