2017-07-27 1 views
-2

Si, pour une raison quelconque, le api_key dans IN.init n'est pas valide la console donne:Comment attraper Linkedin Javascript sdk init erreur?

« Uncaught Erreur: Vous devez spécifier une API JavaScript valide de domaine dans le cadre de la configuration de cette touche. ».

Y a-t-il un moyen pour moi d'attraper cette erreur et de faire quelque chose avec l'information?

Edit 1: Voici l'exemple d'une charge de script et l'initialisation async

$.ajax({ 
       type: 'GET', 
       url: '//platform.linkedin.com/in.js?async=true', 
       dataType: 'script', 
       success: function () { 
        IN.init({ 
         api_key: "MY_API_KEY", 
         onLoad: "onLinkedInLoad", 
         authorize: true 
        }); 
       }, 
       error: function() { 
        console.log('err'); 

       } 
      }); 
+0

Qu'est-ce que 'IN.init', je ne le trouve pas sous https://developer.linkedin.com/docs/getting-started-js-sdk // Si vous incorporez le SDK comme cette page le montre , Je doute qu'il y ait une chance pour toi d'attraper ça. Le code SDK lui-même lit les données qui sont passées en tant que contenu de texte de l'élément de script, donc vous n'avez aucun moyen d'interférer ou d'envelopper quelque chose (comme un try/catch peut-être.) – CBroe

+0

@CBroe J'ai ajouté un exemple de code I ' J'essaie d'utiliser. –

+0

Alors vous avez essayé d'essayer/attraper directement autour de l'appel IN.init? On dirait qu'ils utilisent 'throw new Error ('...')' dans le code du SDK, donc je pense que ça devrait être attrapable. – CBroe

Répondre

0

Vous pouvez utiliser une prise d'essai autour de l'appel. Par conséquent, attraper l'exception pour en savoir plus sur les raisons pour lesquelles une erreur est générée. Tout dépend de qui et de ce que vous essayez de faire avec l'erreur et l'appel de l'API.

+0

J'ai essayé de le faire mais ça n'a pas marché. Je n'ai pas pu détecter l'erreur que l'API donnait. –

2

En raison de la façon dont LinkedIn traite la IN.init (en ajoutant un script à la page qui jetteront des exceptions à l'intérieur) vous ne pouvez pas attraper en fait aucune exception, peu importe où vous allez placer un bloc try catch. La seule chose que vous pourriez faire est d'avoir un handler window.onerror ou un listener d'erreur sur la fenêtre qui attrapera un Script error générique si le IN.init échoue.

window.onerror = function(e) { 
 
    if (e == 'Script error.') { 
 
    console.log('There is a chace IN.init failed.'); 
 
    } 
 
} 
 
$.ajax({ 
 
    type: 'GET', 
 
    url: '//platform.linkedin.com/in.js?async=true', 
 
    dataType: 'script', 
 
    success: function() { 
 
    IN.init({ 
 
     api_key: "MY_API_KEY", 
 
     onLoad: "onLinkedInLoad", 
 
     authorize: true 
 
    }); 
 
    }, 
 
    error: function() { 
 
    console.log('err'); 
 

 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

+0

Merci pour l'info. –

0

Milan est sur quelque chose ici.

Je pense que si vous faites quelque chose comme ça

$.ajax({ 
    type: 'GET', 
    url: '//platform.linkedin.com/in.js?async=true', 
    dataType: 'script', 
    success: function() { 
    IN.init({ 
     api_key: "MY_API_KEY", 
     onLoad: "onLinkedInLoad", 
     authorize: true 
    }); 
}, 
    error: function() { 
     console.log('err'); 
} 
}).done(function (data) { }); 

Avec la clé étant la .done à la fin. Cela fonctionnera n'importe quoi et si les données sont remplies, vous aurez une erreur, un succès ou rien.