Linkedin Api动态参数传递

时间:2015-05-05 12:53:39

标签: angularjs google-chrome linkedin-api

我有一个chrome扩展程序及其内容脚本,它在本地主机上运行

"content_scripts": [{
    "js": ["lib/jquery.js", "searching_helper.js"],
    "matches": [ "http://localhost:8089/*"]
}]

在searching_helper.js中,我从其他内容脚本获取了linkedin成员的公开个人资料网址。

   chrome.runtime.sendMessage({u:true},function(response) {
console.log(response.ans);
linkedinProfileUrl = response.ans.profileUrl;
console.log('linkedinProfileUrl' + linkedinProfileUrl);

});

在linkedinProfileUrl变量中,我正在查看公开个人资料网址正在查看的个人资料。

现在我想要的是我有一个服务器端代码,我必须给它使用linkedin api的url。

服务器端代码 index.html文件

  <script type="text/javascript" src="https://platform.linkedin.com/in.js">
//here goes the api key, and the callback function
api_key: ******
onLoad: onLinkedInLoad
authorize: true
 </script>

在onload上运行的函数在linkedin.js文件中定义

     function onLinkedInLoad() {
    onLinkedInLogin();

}

    //execute on login event
   function onLinkedInLogin() {
//pass user info to angular
angular.element(document.getElementById("appBody")).scope().$apply(
    function($scope) {
        $scope.getLinkedInData();
    }
);

}

并且此getLinkedInData()方法在控制器中定义。

    $scope.getLinkedInData = function() {
    if(!$scope.hasOwnProperty("userprofile")){
        IN.API.Profile("https://in.linkedin.com/in/latika").fields(
                [ "id", "firstName", "lastName", "pictureUrl",
                        "publicProfileUrl","positions","location","email-address"]).

在这个IN.API.Profile(“https://in.linkedin.com/in/latika”)中,我想传递从内容脚本获得的linkedinProfileUrl。问题是,如果我在index.html文件中传递参数,则会抛出错误。

1 个答案:

答案 0 :(得分:0)

我得到了答案。我用localStorage来获取网址。

在使用的search_helper.js中

localStorage.setItem('url', linkedinProfileUrl); 

然后在linkedin.js中使用

  function onLinkedInLogin() {
var url = localStorage.getItem('url');
//pass user info to angular
angular.element(document.getElementById("appBody")).scope().$apply(
    function($scope) {

        $scope.getLinkedInData(url);
    }
);

}