Depuis aujourd’hui, notre application qui utilise le SDK javascript de linkedin pour authentifier les utilisateurs ne fonctionne plus. Nous avons réalisé que l'appel à https://platform.linkedin.com/in.js redirige maintenant vers https://platform.linkedin.com/xdoor/scripts/in.js .
Par conséquent, les appels à IN.User.Authorize(callbackFunction)
ouvrent avec succès la fenêtre de dialogue d'authentification, mais le rappel n'est plus déclenché. Un séjour sans faille
En outre, dans une autre partie de notre application, nous utilisons la fonction IN.UI.Authorize.place().onWindowRemove.subscribe(callbackFunction)
pour suivre le dialogue se ferme. Cette fonctionnalité a également arrêté la formulation et ouvre maintenant une nouvelle fenêtre avec l'URL invalid://
et la console lève cette erreur:
jSecure Error: URL should be absolute with allowed schemas, relative, a hash fragment or query string. TODO?client_id=XXXX&type=user-agent in.js:7
jSecure Error: URL should be absolute with allowed schemas, relative, a hash fragment or query string. invalid://?xdOrigin=https%3A%2F%2FXXX-XXX&xdChannel=XXXX&xd_Origin_Host=https%3A%2F%2FXXXX.XXXX in.js:7
jSecure Error: URL should be absolute with allowed schemas, relative, a hash fragment or query string. TODO?client_id=XXXX&type=user-agent
Avez-vous une idée sur pourquoi cela a cessé de fonctionner?
EDIT: Bug réapparu à partir de 2019 01 28.
Essayez de remplacer window.IN.User.authorize par window.IN.user.authorize
window.IN.user.authorize renvoie une promesse et le rappel de succès est exécuté après le succès de la connexion. C'est bizarre mais fonctionnel si nous remplaçons utilisateur par utilisateur
window.IN.user.authorize().then(function(data){
console.log("Logged in successfully .");
window.IN.API.Raw("/people/~:(id,first-name,last-name,formatted-name,headline,location,industry,current-share,num-connections,num-connections-capped,summary,specialties,positions,picture-url,site-standard-profile-request,api-standard-profile-request,public-profile-url,email-address)").method("GET").body().result(function (oData) {
that.props.dispatch(userCreation(linkedInProfileFormat(oData)));
});
},function(error){
alert("Linkedin failed because of harshita !");
});
Essayez ce code. J'ai fait quelques changements et j'ai bien travaillé pour moi. besoin de remplacer window.IN.User.authorize () TO window.IN.user.authorize ()
<script type="text/javascript" src="//platform.linkedin.com/in.js">
api_key: XXXXXXXXX
authorize: true
</script>
<script type="text/javascript">
function liAuth(){
window.IN.user.authorize().then(function(){
getProfileData();
});
}
function setLoginBadge(profile) {
if (!profile) {
profHTML = "<p>You are not logged in</p>";
}
document.getElementById("given_name").value = profile.firstName;
document.getElementById("family_name").value = profile.lastName;
document.getElementById("email").value = profile.emailAddress;
document.getElementById("verifyOauthRequestLinkedIn").submit();
}
function onError(error) {
console.log(error);
}
function getProfileData() {
IN.API.Profile("me")
.fields(["id", "firstName", "lastName", "pictureUrl", "publicProfileUrl","email-address","headline"])
.result(function(result) {
setLoginBadge(result.values[0]);
})
.error(onError);
}
</script>
<a href="#"><img onclick="liAuth()" src="/images/linkedIn.png"></a>