Office Outlook 加载项 OAuth 错误
Office Outlook Add-In OAuth Error
我目前正在开发 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
接受:文本/*,application/xml,application/json; odata.metadata=none
X-锚邮箱:test@test.de
推荐人:localhost:44300/AddInRead/App/Index/Index.html
接受语言:de-DE
来源:localhost: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 沙盒
我想我搜索了整个互联网,但找不到任何东西
解决这个问题。
希望有人能给我正确的提示。
顺便说一句:由于我的帐户没有声誉,不得不删除一些链接:/
谢谢!
我发现了问题并且能够解决它。
Access-Token和你调用REST-API的Office.context.mailbox.getCallbackTokenAsync函数得到的Token是有区别的。
我可以看到,通过使用我自己的帐户登录 Outlook Dev Center OAuth Sandbox,获取令牌并将此令牌与我在 VS 中使用 getCallbackTokenAsync 获得的令牌进行比较。
它们是不同的。
函数中的令牌仅用于获取附件或项目。
在这种情况下,我认为 "items" 是消息,我可以使用该令牌开始对所有消息的请求,但是错误的。
您必须从函数中获取令牌并直接使用
https://outlook.office.com/api/v2.0/me/mailfolders/inbox/messages/' + idMail + '/附件/' + mail.attachments[i].id;
此致
我目前正在开发 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
接受:文本/*,application/xml,application/json; odata.metadata=none
X-锚邮箱:test@test.de
推荐人:localhost:44300/AddInRead/App/Index/Index.html
接受语言:de-DE
来源:localhost: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 沙盒
我想我搜索了整个互联网,但找不到任何东西 解决这个问题。
希望有人能给我正确的提示。
顺便说一句:由于我的帐户没有声誉,不得不删除一些链接:/
谢谢!
我发现了问题并且能够解决它。
Access-Token和你调用REST-API的Office.context.mailbox.getCallbackTokenAsync函数得到的Token是有区别的。 我可以看到,通过使用我自己的帐户登录 Outlook Dev Center OAuth Sandbox,获取令牌并将此令牌与我在 VS 中使用 getCallbackTokenAsync 获得的令牌进行比较。
它们是不同的。 函数中的令牌仅用于获取附件或项目。 在这种情况下,我认为 "items" 是消息,我可以使用该令牌开始对所有消息的请求,但是错误的。 您必须从函数中获取令牌并直接使用 https://outlook.office.com/api/v2.0/me/mailfolders/inbox/messages/' + idMail + '/附件/' + mail.attachments[i].id;
此致