2017-10-03 3 views
0

Je crée une application sur Outsystems, qui utilise l'API Yammer. Le problème est que l'authentification Yammer cause des problèmes. Dans la propriété « onReady » de la page, j'ai ajouté le code suivant:Problèmes d'authentification Yammer

yam.getLoginStatus(
function(response) { 
if (response.authResponse) { 
    console.log("logged in"); 
    $parameters.Token = response.access_token.token; 
    console.dir(response); //print user information to the console 
} 
else { 
    yam.platform.login(function (response) { //prompt user to login and authorize your app, as necessary 
    if (response.authResponse) { 
     console.dir(response); //print user information to the console 
     console.dir(response.access_token.token); 
     $parameters.Token = response.access_token.token; 
     console.dir($parameters.Token); 
    } 
    }); 
} 
} 
); 

Il retourne avec succès un jeton, que je suis en mesure de vérifier à l'aide console.log(). En outre, j'ai ajouté un bouton de connexion qui a le même code dans sa propriété OnClick. Le problème est que, lorsque j'essaie d'exécuter l'appel API Get Messages (Endpoint: https://www.yammer.com/api/v1/messages.json) à partir de OnReady, il me donne l'erreur d'accès non autorisé 401. Mais, lorsque j'utilise en plus le OnReady, et aussi cliquez sur le bouton de connexion, l'appel de l'API est réussi. Je ne comprends pas pourquoi, parce que le jeton reçu par les deux appels sont exactement les mêmes, mais cela fonctionne après que l'utilisateur se connecte deux fois? Un moyen de rectifier cela?

P.S. J'ai essayé d'utiliser l'autre point de terminaison (https://api.yammer.com/api/v1/messages.json). Je reçois le même problème.

Répondre

0

Essayez d'ajouter un $resolve() à l'intérieur de la fonction de rappel. De cette façon, le code attendra jusqu'à ce qu'il ait fini avant de continuer à votre prochain jav