Outlook WEB Add-in执行getAccessToken返回状态代码302

时间:2018-06-04 08:56:06

标签: javascript azure office-js outlook-web-addins

我严格按照this article构建Outlook WEB加载项,但当我执行getAccessToken时,我收到302:

  

缺少此加载项的授权。

名称:

  

预授权缺失

为什么?我的加载项已在portal中注册。我还需要做其他事吗?此请求的授权类型是什么?我应该在哪里放入?

$("#getAccessTokenBtn").click(function () {
        Office.context.auth.getAccessTokenAsync(function (result) {
            if ("succeeded" === result.status) {
                // Use this token to call Web API
                var ssoToken = result.value; 
            } else {
                if (13003 === result.error.code) {
                    // SSO is not supported for domain user accounts, only
                    // work or school (Office 365) or Microsoft Account IDs.
                } else {
                    // Handle error
                }
            }
        });
    });

这是我的清单:

<VersionOverrides xmlns="http://schemas.microsoft.com/office/mailappversionoverrides/1.1" xsi:type="VersionOverridesV1_1">
  <Requirements>
    <bt:Sets DefaultMinVersion="1.3">
      <bt:Set Name="Mailbox" />
    </bt:Sets>
  </Requirements>
  <Hosts>
    <Host xsi:type="MailHost">
        ...
    </Host>
  </Hosts>

  <Resources>
    ...
  </Resources>

  <WebApplicationInfo>
    <Id>94x668mb-461c-4r4e-851n-fb9721222e31</Id>
    <Resource>api://localhost:44374/94x668mb-461c-4r4e-851n-fb9721222e31</Resource>
    <Scopes>
      <Scope>profile</Scope>
      <Scope>user.read</Scope>
    </Scopes>
  </WebApplicationInfo>
</VersionOverrides>

我发现建议错误13005的troubleshooting page如下:

  

13005   无效的授予。这通常意味着Office尚未预先授权加载项的Web服务。有关详细信息,请参阅Create the service applicationRegister the add-in with Azure AD v2.0 endpoint(ASP.NET)或Register the add-in with Azure AD v2.0 endpoint(Node JS)。如果用户尚未将您的服务应用程序权限授予其配置文件,也可能发生这种情况。

这甚至意味着什么?

在我要求访问令牌之前,我是否应该同意关注this documentation,只需导航到以下网址即可?

https://login.microsoftonline.com/common/adminconsent?client_id=94x668mb-461c-4r4e-851n-fb9721222e31

1 个答案:

答案 0 :(得分:0)

是。开发时,您必须按照here所述授予管理员同意。

您获得该错误的另一种可能性是您没有预先授权Outlook加载。当您使用AAD 2.0注册加载项时,请确保您已完成本文的第10步:Register SSO add-in with AAD 2.0。最后,如果您还没有,请查看此文章,了解适用于Outlook插件的任何特殊因素:Authenticate (Outlook) user with an SSO token