Javascript – How to get email address field using the LinkedIn Javascript API

apijavascriptlinkedin

I'm using the LinkedIn Javascript API to sign in users to my application, however the API is not returning the email address even though I'm requiring permission for that specific field. I'm including the API script as follows:

<script type="text/javascript" src="//platform.linkedin.com/in.js">
  api_key: API_KEY
  scope: r_fullprofile r_emailaddress
</script>

then I'm including the Log In button in the markup:

<script type="in/Login" data-onAuth="onLinkedInAuth">

and finally I have a function to add the callback for the API response:

function onLinkedInAuth() {
    var fields = ['first-name', 'last-name', 'email-address'];

    IN.API.Profile("me").fields(fields).result(function(data) {
        console.log(data);
    }).error(function(data) {
        console.log(data);
    });
};

I'm only getting the First and Last Name but the API doesn't return the email field.

Reference: https://developer.linkedin.com/documents/profile-fields#email

Best Answer

1- be sure you made email permission (r_emailaddress) in your app http://developer.linkedin.com/documents/authentication#granting

2- then you may use this

    <script type="text/javascript" src="http://platform.linkedin.com/in.js">
        api_key: key
        **onLoad: onLinkedInLoad**
        authorize: true
    </script>

    <script>



        function onLinkedInLoad() {
            IN.Event.on(IN, "auth", onLinkedInAuth);
        }

        // 2. Runs when the viewer has authenticated
        function onLinkedInAuth() {

            IN.API.Profile("me").fields("first-name", "last-name", "email-address").result(function (data) {
                console.log(data);
            }).error(function (data) {
                console.log(data);
            });
         }
</script>

hope this will help you :) thanks