wilsonpage
wilsonpage

Reputation: 17610

How can I load the LinkedIn Javascript API library with a script loader?

The LinkedIn Api suggests you load their javascript library like this:

<script type="text/javascript" src="http://platform.linkedin.com/in.js">
  api_key: your_api_key_goes_here
</script>

I want to know how I can load this using a script loader (eg. RequireJS or LABJS). It seems the library extracts the api key from within the script tags. This seems like a pretty weird way of doing it in my opinion!

I would prefer to load the library using a script loader, but can't seem to find out how to insert the api_key without using the suggested method.

The official instructions are here

Anyone have any ideas?

Upvotes: 13

Views: 12463

Answers (3)

Muhammad Tahir
Muhammad Tahir

Reputation: 2491

Check this out

 if(typeof IN === 'undefined'){ //if it is already included don't include that
            $.getScript('//platform.linkedin.com/in.js', function(data, textStatus){
                 IN.init({
                    api_key: 'YOUR_API_KEY',
                    onLoad: function(){
                        alert("Fully Loaded");
                    }
                });
            });
        }

Upvotes: 2

Adam Trachtenberg
Adam Trachtenberg

Reputation: 2241

From: https://developer.linkedin.com/documents/general-methods

Async Loading

To avoid encountering race conditions in your page, you can load the framework asynchronously.

If your page uses JQuery, the following code will work:

$(document).ready(function() {
    $.getScript("http://platform.linkedin.com/in.js?async=true", function success() {
        IN.init({
            onLoad: "myOnloadFunction"
        });
    });
});

Otherwise, you need something like this:

<script type="text/javascript" src="http://platform.linkedin.com/in.js?async=true"></script>
<script type="text/javascript">
    IN.init({
        onLoad: "myOnloadFunction"
        // any other parameters you'd normally put beneath the script element would be here
    });
</script>

Upvotes: 17

Ujjwal Singh
Ujjwal Singh

Reputation: 4988

As noted by @AdamTrachtenberg you need to use the async version of the API: http://platform.linkedin.com/in.js?async=true

next you will have to call the In.init() upon load of the API JS.
You should do so in the callback function of you script loader.

You may provide your API Key as a param to In.init()

Note: that you do not need to pass a callback function onLoad to In.init()
a post i wrote about the same

Upvotes: 1

Related Questions