web-dev-qa-db-fra.com

Rappel IN.User.Authorize jamais déclenché

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.

6
klacointe

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 !");
                });   
1
NavyCody

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>
0
sumit katiyar