我有一个关于Office365 REST API的问题.有没有办法获得资源列表 - 会议室日历.
如果我知道会议室用户名,我只能在会议室举行会议.
https://outlook.office365.com/api/v1.0/users/room1@xxxx.onmicrosoft.com/calendars
我可以列出所有会议室并获取他们的日历吗?
通过点击此请求:https://outlook.office365.com/api/v1.0/users/room@email.com/events 在浏览器中我可以输入我的管理员用户名和密码,并获取该特定房间的日历活动.但是,当我尝试从具有admin身份验证的本机应用程序进行此调用时,我收到此响应: reason ="该调用应该访问oauth令牌中指定的邮箱."; error_category ="invalid_grant" 如何获取日历事件特定的房间验证为管理员?
我在想办法在 Office 365 上获取“已取消”的事件时遇到了麻烦。这似乎是一件非常基本的事情,但是我试图找出如何做到这一点的尝试都没有奏效。
阅读 Office 365 API 文档,我可以看到该Event
资源具有IsCancelled
布尔属性,该属性应显示true
事件是否已取消/删除。
我已经尝试了多种通过 API 获取事件的方法,但都没有成功。似乎一旦一个事件被取消,它就会从返回的结果中删除。
我还看到我可以使用OData 查询参数来尝试过滤事件获取响应的结果,所以我什至尝试$filter=IsCancelled eq true
在请求上设置查询参数,但我得到的只是一个带有空数据数组的响应。:/
有什么明显的我遗漏了吗?这里的文档很简单。
outlook calendar exchangewebservices office365 outlook-restapi
这个问题基于我之前提出的一个问题,但后来有了更多细节和经验.
首先是一些背景,我有一个Outlook Addin应该转发用户消息,然后将消息移动到特定文件夹.这需要在OWA和Outlook 2016环境中适用于Prem Exchange.它既适用于以前的客户端,也适用于O365用户的Outlook Mobile App.
我的具体问题归结为检测何时使用EWS与Rest API(甚至是MS Graph API).
这是我的代码片段:
Office.initialize = function() {
$(document).ready(function() {
$('#forward').click(forwardMessage);
});
};
function forwardMessage() {
if(Office.context.mailbox.restUrl) { // The problem child
forwardEWS(); // Works like a charm
} else {
forwardRest(); // Works fine for O365 users
}
}
function forwardRest() {
var restHost = Office.context.mailbox.restUrl;
var restId = getItemRestId();
Office.context.mailbox.getCallbackTokenAsync({isRest: true}, function(result){
if (result.status === "succeeded") {
var accessToken = result.value;
$.ajax({
url: restHost + '/v2.0/me/messages/' …
Run Code Online (Sandbox Code Playgroud) outlook exchangewebservices outlook-restapi office-js outlook-web-addins
我正在尝试创建一个 NodeJS 守护进程/服务应用程序,用于使用 node-outlook 库访问 Office 365 邮件/联系人。我能够创建 Office 365 试用订阅并注册我的应用程序。现在我的应用程序有了访问端点 URL、客户端 ID 和客户端密钥。这是我的代码:
var outlook = require("node-outlook");
var token;
process.env.DEBUG = true;
var fs = require('fs');
var credentials = {
clientID: "<id>",
clientSecret: "<secret>",
site: "https://login.microsoftonline.com/<my-tenant-id>",
authorizationPath: "/oauth2/authorize",
tokenPath: "/oauth2/token",
useBasicAuthorizationHeader: false,
rejectUnauthorized: false,
ca: fs.readFileSync('pki/some.pem', { encoding: 'ascii' }),
};
var oauth2 = require('simple-oauth2')(credentials);
oauth2.client.getToken({}, saveToken);
function saveToken(error, result) {
if (error) {
console.log('Access Token Error: ', error);
return;
}
token = oauth2.accessToken.create(result);
var outlookClient = new outlook.Microsoft.OutlookServices.Client( …
Run Code Online (Sandbox Code Playgroud) 我正在寻找一种方法来使用Office 365 REST Message API检测和设置电子邮件的"已标记"状态.我没有看到'Flag'被列为REST消息的属性,但我确实看到它列在Exchange Web服务下.
我试图做一个REST调用,将Flag添加到过滤的属性,以及SingleValueExtendedProperties和MultiValueExtendedProperties,如:
/folders/inbox/messages?$top=50&$select=Subject,...,Flag
/folders/inbox/messages?$top=50&$select=Subject,...,SingleValueExtendedProperties
/folders/inbox/messages?$top=50&$select=Subject,...,MultiValueExtendedProperties
Run Code Online (Sandbox Code Playgroud)
所有这些都以某种形式回归:
{"error":{"code":"RequestBroker-ParseUri","message":"Could not find a property named \\\'Flag\\\' on type \\\'Microsoft.OutlookServices.Message\\\'."}}
Run Code Online (Sandbox Code Playgroud)
有关如何通过REST API访问Outlook"Flag"属性的任何建议?
我有一个通过 Azure AD REST API v.2 与 Outlook、日历集成的应用程序。我尝试使用增量和动态范围来“升级”用户的令牌,以便应用程序也可以访问 OneDrive(这样用户就可以直接在云中上传电子邮件附件)。授权代码检索重定向进展顺利,用户在登录后会被要求提供附加范围(files.readwrite)。但是,在步骤 2 中,当我尝试获取访问令牌时,出现以下错误:
System.Exception: Acquire token by authorization code returned BadRequest:
{
"error": "invalid_scope",
"error_description": "AADSTS70011: The provided value for the input parameter 'scope' is not valid. One or more scopes in 'https://outlook.office.com/mail.readwrite https://outlook.office.com/mail.send https://outlook.office.com/contacts.readwrite https://outlook.office.com/calendars.readwrite https://outlook.office.com/people.read files.readwrite' are not compatible with each other.\\r\\nTrace ID: b02fa0bf-6e86-4156-81e8-294dbc851500\\r\\nCorrelation ID: 3697bd18-554c-47e6-81cc-de3c47780fc9\\r\\nTimestamp: 2018-02-01 15:26:10Z",
"error_codes": [
70011
],
"timestamp": "2018-02-01 15:26:10Z",
"trace_id": "b02fa0bf-6e86-4156-81e8-294dbc851500",
"correlation_id": "3697bd18-554c-47e6-81cc-de3c47780fc9"
}
Run Code Online (Sandbox Code Playgroud)
或者这个错误:
System.Exception: Acquire token by authorization code returned BadRequest:
{ …
Run Code Online (Sandbox Code Playgroud) 为实现外接程序命令的Outlook外接程序上载清单文件时,出现以下错误:
出了些问题
无法安装此应用。清单文件不符合架构定义。元素“CustomTab”命名空间“ http://schemas.microsoft.com/office/mailappversionoverrides具有无效的子元素命名空间“标签”“ http://schemas.microsoft.com/office/mailappversionoverrides ”。预期的可能元素列表:'名称空间中的组' http://schemas.microsoft.com/office/mailappversionoverrides '...
但是,该Label
元素是该元素的有效子代CustomTab
。我该如何解决?
我找到了有关如何使用Office 365 rest API发送电子邮件的以下文档.
这是关于doucmentation的例子:
POST https://outlook.office.com/api/v2.0/me/sendmail
{
"Message": {
"Subject": "Meet for lunch?",
"Body": {
"ContentType": "Text",
"Content": "The new cafeteria is open."
},
"ToRecipients": [
{
"EmailAddress": {
"Address": "garthf@a830edad9050849NDA1.onmicrosoft.com"
}
}
],
"Attachments": [
{
"@odata.type": "#Microsoft.OutlookServices.FileAttachment",
"Name": "menu.txt",
"ContentBytes": "bWFjIGFuZCBjaGVlc2UgdG9kYXk="
}
]
},
"SaveToSentItems": "false"
}
Run Code Online (Sandbox Code Playgroud)
如果用户授权应用程序代表它执行操作,则此方法正常.但是,我使用客户端信任来构建一个守护程序应用程序,代表给定租户中的所有用户,因此"POST https://outlook.office.com/api/v2.0/me/sendmail "无法正常工作因为它引用了"我",无法分辨哪个用户正在发送电子邮件.
如果你可以提供示例示例,我会谨慎行事.仅供参考:我使用的是Java,但您的答案不一定是Java.
exchange-server azure-active-directory adal outlook-restapi office365api