0

我正在使用 Yammer API 在 Outsystems 上创建一个应用程序。问题是 Yammer 身份验证导致了一些问题。在页面的“OnReady”属性中,我添加了以下代码:

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);
    }
  });
}
}
);

它成功返回了一个令牌,我可以使用 console.log() 对其进行验证。此外,我添加了一个登录按钮,该按钮在其 OnClick 属性中具有相同的代码。

问题是,当我尝试从 OnReady执行 Get Messages API 调用(端点: https ://www.yammer.com/api/v1/messages.json)时,它给了我 401 Unauthorized access 错误。但是,当我另外使用 OnReady 并单击 Login 按钮时,API 调用成功。我不明白为什么,因为两个调用收到的令牌完全相同,但是用户登录两次后它就可以工作?有什么办法可以纠正这个吗?

PS 我试过使用另一个端点(https://api.yammer.com/api/v1/messages.json)。我遇到了同样的问题。

4

1 回答 1

0

尝试$resolve()在回调函数中添加一个。这样,代码将等到完成后再继续您的下一个 jav

于 2017-10-04T09:09:42.957 回答