【问题标题】:Office Outlook Add-In OAuth ErrorOffice Outlook 加载项 OAuth 错误
【发布时间】:2016-05-30 09:13:00
【问题描述】:

我目前正在开发 Office Outlook 应用程序。 我正在尝试获取消息(特别是消息的附件) 从 Exchange 服务器。 我正在使用 Outlook 桌面应用程序。

我已经获得了 bearer 身份验证令牌,我正在尝试使用 Office REST-API 来获取消息,但如果我发送GET 请求到服务器。

错误: "您尝试访问的 api 不支持项目范围的 OAuth。"

这是我的 JavaScript 代码:

        Office.context.mailbox.getCallbackTokenAsync(function (asyncResult) {
        if (asyncResult.status === "succeeded") {
            var authToken = asyncResult.value;
            var attUrl = 'https://outlook.office.com/api/v2.0/me/mailfolders/inbox/messages/';
            $.ajax({
                method: "GET",
                url: attUrl,
                beforeSend: function (request) {
                    request.setRequestHeader("Accept", "text/*, application/xml, application/json; odata.metadata=none");
                    request.setRequestHeader("Authorization", "Bearer " + authToken);
                    request.setRequestHeader("X-AnchorMailbox", "test@test.de");
                },
                success: function (responseData) {
                    console.log("success", responseData);
                },
                error: function (errData) {
                    console.log("err", errData);
                }
            });
        }
    });

我正在扫描传出流量,似乎一切正常:

GET outlook.office.com/api/v2.0/me/mailfolders/inbox/messages/HTTP/1.1

授权:Bearer TokenIsCorrect

接受:text/*、application/xml、application/json; odata.metadata=none

X-AnchorMailbox: test@test.de

引用者:localhost:44300/AddInRead/App/Index/Index.html

接受语言:de-DE

来源:本地主机:44300

接受编码:gzip、deflate

用户代理:Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) 像 Gecko

主机:outlook.office.com

DNT:1

连接:保持活动状态

缓存控制:无缓存

..................

我指的是: Outlook 邮件 REST-API 参考

和上的样本 Outlook 开发中心 OAuth 沙盒

我想我在互联网上搜索了洞,但找不到任何东西 解决这个问题。

希望有人能给我正确的提示。

顺便说一句:由于我的帐户没有声誉而不得不删除一些链接:/

谢谢!

【问题讨论】:

    标签: rest oauth outlook office365


    【解决方案1】:

    我发现了问题,我能够解决它。

    如果你调用REST-API的Office.context.mailbox.getCallbackTokenAsync函数,Access-Token和你得到的Token是有区别的。 我可以看到,使用我自己的帐户登录 Outlook 开发中心 OAuth 沙箱,获取令牌并将此令牌与我在 VS 中使用 getCallbackTokenAsync 获得的令牌进行比较。

    它们是不同的。 该函数的 Token 仅用于获取附件或项目。 在这种情况下,我认为“项目”是消息,我可以使用该令牌开始请求所有消息,但错误。 您必须从函数中获取令牌并直接使用 https://outlook.office.com/api/v2.0/me/mailfolders/inbox/messages/' + idMail + '/attachments/' + mail.attachments[i].id;

    最好的问候

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多