【问题标题】:How to connect Likedin with phonegap如何连接 Linkedin 和 phonegap
【发布时间】:2014-05-28 21:39:15
【问题描述】:

我想使用 Phonegap 将 Likedin 与我的应用程序连接。我已经搜索插件和 OAuth 程序,没有关于此的更新。是否有人知道如何使用 Phonegap 应用程序登录并获取 Likedin 详细信息。

【问题讨论】:

  • 如果您知道任何插件,请更新
  • Does any Body Know javascript API for mobile app inlinkedin

标签: cordova oauth


【解决方案1】:

到目前为止,linkdin 插件不适用于 phonegap,但您可以使用 Inappbrowser 插件手动实现。

我使用 angularjs 和 phonegap 作为它非常棒的 JavaScript 框架。下面的代码会给你一些想法。

$scope.linkdin = function (title,description,image,index) {
        //window.plugins.socialsharing.share('Message only');
        $scope.linkdinUrl = "http://m3.licdn.com/media/p/3/000/124/1a6/089a29a.png";
        $scope.linkdinTilte = title;
        $scope.linkidnSummary = description;
        $scope.linkidnImage =  "http://122.182.14.107:8080/GESmartCatalog/feature/image/"+$scope.fm_data[index].id+".png";
        //alert($scope.linkidnImage)
        if(localStorage.getItem("linkedinWindowExpiry") == '0')
        {
            localStorage.setItem("linkedinWindowValue", "0")
        }

        if(localStorage.getItem("linkedinWindowValue") == '0' && localStorage.getItem("linkedinWindowExpiry") == '0')
        {
            localStorage.setItem("linkedinWindowValue", "1");
            $scope.linkedinWindowText = 'location=no';
        }
        else
        {
            // alert("sfgfsg");
            // alert(localStorage.getItem("linkedinWindowExpiry"));
            $scope.linkedinWindowText = 'location=no';  
        }



        $rootScope.shareXmlLinkedin = "<?xml version='1.0' encoding='UTF-8' ?>"+
                                        "<share>"+
                                          "<comment></comment>"+
                                          "<content>"+
                                             "<title>"+$scope.linkdinTilte+"</title>"+
                                            "<description>"+$scope.linkidnSummary+"</description>"+
                                           "<submitted-url>"+$scope.linkdinUrl+"</submitted-url>"+
                                            "<submitted-image-url>"+$scope.linkidnImage+"</submitted-image-url>"+
                                         "</content>"+
                                         "<visibility>"+
                                            "<code>anyone</code>"+
                                          "</visibility>"  +
                                        "</share>";

        var ref = window.open('https://www.linkedin.com/uas/oauth2/authorization?response_type=code&client_id=gw80y7867ukx&scope=rw_nus w_messages r_fullprofile&state=zwdkLai5urm0AscP&redirect_uri=http://www.softwebcms.com','_blank',$scope.linkedinWindowText);
            ref.addEventListener('loadstart', function(e){

                if(e.url.indexOf('?code=') >=0 ){
                    if(e.url.match(/=[^]+&/)){
                        var code = e.url.match(/=[^]+&/)[0].substring(1).replace('&','');
                       // alert(code)
                        window.sessionStorage.setItem('code', code);

                        ref.close();

                        $.ajax({
                            url: 'https://www.linkedin.com/uas/oauth2/accessToken?grant_type=authorization_code&code='+code+'&redirect_uri=http://www.softwebcms.com&client_id=gw80y7867ukx&client_secret=zwdkLai5urm0AscP',
                            success: function(a){
                                //alert(JSON.stringify(a));
                                    //alert(a.access_token);

                                    localStorage.setItem("linkedinWindowExpiry", a.expires_in);
                                        //alert($rootScope.shareXmlLinkedin);   
                                     $.ajax({
                                            url : 'https://api.linkedin.com/v1/people/~/shares?oauth2_access_token='+a.access_token,
                                            type: 'POST',
                                            method : 'POST',
                                            headers : {
                                                'Content-Type'  : 'application/xml'
                                            },
                                            data: $rootScope.shareXmlLinkedin,
                                            success: function(a){

                                                $modal.open({
                                                    template: "<div class='modal-body'><div style='width:100%; text-align:center; '><h3 style='text-align:center;'>Added to Linkedin</h3></div>",
                                                    windowClass: "main_popup_width dialog",
                                                    controller: function ($scope, $rootScope, $modalInstance) {

                                                                setTimeout(function(){$rootScope.wtbfavactive="123";$modalInstance.dismiss('cancel')},3000);

                                                              },
                                                    }); 
                                            },
                                            error: function(a){
                                                console.log(JSON.stringify(a))
                                                //alert(JSON.stringify(a))
                                                $modal.open({
                                                    template: "<div class='modal-body'><div style='width:100%; text-align:center; '><h3 style='text-align:center;'>Already posted to Linkedin</h3></div>",
                                                    windowClass: "main_popup_width dialog",
                                                    controller: function ($scope, $rootScope, $modalInstance) {

                                                                setTimeout(function(){$rootScope.wtbfavactive="123";$modalInstance.dismiss('cancel')},3000);

                                                              },
                                                    }); 
                                            }
                                        })

                            },
                            error: function(a){
                                //alert(JSON.stringify(a))
                                console.log(JSON.stringify(a));
                            }
                        })
                    }
                }
            });
      };

希望这会有所帮助... 谢谢

【讨论】:

  • 您好,感谢 Adarsh 的更新。但我不知道如何在 Phonegap 中实现这一点。您能简要介绍一下吗。您是否在 Phonegap 中实现了 Likedin。
  • 你需要为此安装 inappbrowser 插件。您需要在 inappbrowser 中进行两次 ajax 调用,如上面的代码所示。之后它会要求用户登录。基本上我已经实现了将文本、链接或图像共享到链接墙
  • 我已经在应用浏览器中安装了。我想登录并获取详细信息,而不是为了分享。在 Likedin 中注册我们的应用时还有一件事,它询问了 javascript API 域。我们在那边要提到的
  • 在尝试登录时显示 javascript api 域错误
  • @JothiSankarNKanakavel - 你能更新一下吗?我正在尝试实现相同的...
【解决方案2】:

到目前为止,还没有可用于 phonegap 的插件。但您可以使用 Javascript API 连接 Linkedin 帐户。请点击此链接Linkedin Javascript API &Sign in Tutorial 您可以使用 inappbrowser 插件调用此 API。剩下的,你可以借助 javascript 和会话管理来管理它。希望这会有所帮助。!

【讨论】:

  • 您好,非常感谢您的回复。但我想如何指定 JavaScript API 域:用于移动应用程序(Phonegap)。
  • 请更新详情
  • 您需要在需要时调用这些 API。如果您尝试过 facebook 集成,我们首先以相同的方式调用 facebook javascript api,您需要了解 Linkedin api 的工作并实施。
  • Fine Deep。我也做了 Facebook 集成,但会有一个 Facebook 的重定向 URL,所以没问题,但是我们没有 Likedin 的 URL。我无法在我的中使用 Likedin 登录应用程序使用 API 密钥。它抛出错误 Javascript API 域。这就是我问你的原因。我搜索了很多,但仍然没有解决方案
  • 你是否在 Phonegap 中实现了 Likedin
猜你喜欢
  • 2017-10-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-27
  • 2019-05-29
  • 2015-05-26
  • 2015-01-23
  • 1970-01-01
相关资源
最近更新 更多