Office 365 API和EWS(Exchange Web服务)之间有什么区别?
我什么时候使用?
我有一个Web应用程序调用EWS托管API连接到office365.
我在MSDN上关注了EWS Managed API 2.0客户端应用程序入门文档.
在web.config我指定的代理pac:
<configuration>
<system.net>
<defaultProxy useDefaultCredentials="false">
<proxy autoDetect="False" bypassonlocal="True" scriptLocation="http://example.com:8080/proxy.pac" usesystemdefault="False" />
</defaultProxy>
</system.net>
[...]
</configuration>
Run Code Online (Sandbox Code Playgroud)
我尝试以下列方式连接到Exchange:
public static ExchangeService getExchangeService(String username)
{
ServicePointManager.ServerCertificateValidationCallback = CertificateValidationCallBack;
ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2013);
service.Credentials = new WebCredentials(USER_365, PWD_365, DOMAIN_365);
service.UseDefaultCredentials = true;
//I've tried both WebProxy settings, this:
service.WebProxy = WebRequest.GetSystemWebProxy();
//And this (with no success):
//service.WebProxy = WebRequest.DefaultWebProxy;
//I've also tried Autodiscover...
service.AutodiscoverUrl(USER_365, RedirectionUrlValidationCallback);
//...and direct url
//service.Url = new Uri("https://outlook.office365.com/EWS/Exchange.asmx"); …Run Code Online (Sandbox Code Playgroud) POST https://graph.microsoft.com/v1.0/groups/4a3c5f77-463e-XXXXXX-fa8XXXXXX/calendar/events
Accept: application/json
Authorization: Bearer <Token>
Content-Type: application/json; charset=utf-8
{
"originalStartTimeZone": "UTC",
"originalEndTimeZone": "UTC",
"start": {
"dateTime": "2015-12-03T09:30:00-00:00",
"timeZone": "UTC"
},
"end": {
"dateTime": "2015-12-03T10:30:00-00:00",
"timeZone": "UTC"
},
"responseStatus": {
"response": "Accepted",
"time": "2015-12-01T18:34:00-08:00"
},
"reminderMinutesBeforeStart": 15,
"isReminderOn": true
}
Run Code Online (Sandbox Code Playgroud)
错误:
{
"error": {
"code": "ErrorInternalServerError",
"message": "The SMTP address has no mailbox associated with it.",
"innerError": {
"request-id": "f62423b0-0ade-494d-8c8c-1b56db60b524",
"date": "2015-12-02T10:39:44"
}
}
}
Run Code Online (Sandbox Code Playgroud)
我试过下面提到的两个帖子,
POST /groups/<id>/events
POST /groups/<id>/calendar/events
Run Code Online (Sandbox Code Playgroud)
我尝试了不同的组类型,包括安全性,已启用邮件和统一组,但我看到相同的错误消息,任何帮助将不胜感激.
我想知道Office 365 REST API和Microsoft Graph之间的区别,因为我们可以找到这两者的类似功能.
https://msdn.microsoft.com/en-us/office/office365/howto/rest-api-overview
以下是上面链接的文字:
Office 365 API功能也可通过Microsoft Graph获得,Microsoft Graph是一种统一的API,包括来自其他Microsoft服务(如Outlook,OneDrive,OneNote,Planner和Office Graph)的API,可通过单个端点和单个访问令牌访问.
如果没有这样的差异,你打算弃用这些吗?
谢谢
api office365 office365api office365connectors microsoft-graph
最近我们注意到Microsoft Graph API已经将文件附件作为从/ me/messages端点返回的消息实体返回.
重现的场景如下:
还值得注意的是,这些附件"消息"与原始电子邮件具有相同的主题,正文内容设置为附件的文件内容(如果附件是文档),没有发件人或收件人,他们有isRead状态为true,isDraft状态为true.完全废话!
我只能假设这是Graph API中的一个错误 - 我无法看到为什么会出现这种情况.值得注意的是,我已经使用Graph API大约9个月了,这种行为最近才开始发生.
微软的某个人可以尽快与我联系吗?这是API中的一个主要错误,无疑会破坏大多数使用它的应用程序.这也是一个非常值得关注的问题,我们正在改变一个据称稳定的v1.0.为什么不在下一个版本中使用v1.1或v2.0?
我知道我可以阅读Office 365 API的联系人,但我无法弄清楚是否可以从地址簿中获取联系人.
我希望能够在 Azure 活动目录中获取所有用户的 office365 照片。
现在我可以使用图形 SDK 获取当前用户的电子邮件
GraphServiceClient graphClient = SDKHelper.GetAuthenticatedClient();
public async Task<string> GetMyEmailAddress(GraphServiceClient graphClient)
{
User me = await graphClient.Me.Request().Select("mail,userPrincipalName").GetAsync();
return me.Mail ?? me.UserPrincipalName;
}
Run Code Online (Sandbox Code Playgroud)
但我不知道如何将集成在得到照片部分来自https://graph.microsoft.io/en-us/docs/api-reference/v1.0/api/profilephoto_get到代码。
任何帮助或代码示例表示赞赏!
c# outlook-restapi office365api office365-restapi microsoft-graph-api
Office 365 Graph API文档建议在delta查询中一起使用时,应支持$ filter和$ top操作...
但是,在执行同时使用$ filter和$ top的查询时,例如:
https://graph.microsoft.com/beta/me/mailfolders/AAMkADQ3MDg1NWRmLTUxMGQtNDRiMi1iMGE4LTAzMzdjNGRiYTIxNQAuAAAAAADEPuholyn_QpUTcq2qMEH4AQBScDrPb_rMTZOocc5vRCTLAAAAAAEMAAA=/messages/delta?$滤芯的receivedDateTime%如20Ge%202017-04-01T00:00:00Z&$顶部= 1000
我们发现未应用$ top值,并且使用每页10个结果的默认值.但是,$ filter已正确应用.
在没有$ filter语句的情况下进行测试时,我们发现$ top值按预期应用.
这是Graph API中的错误还是我误解了什么?提前致谢.
今天早上我们注意到"name"属性已从Office 365 Graph API上的最新文件查询中删除,这导致我们的应用程序出现问题.
文档或更改日志中没有公布此更改,因此我认为这是一个意外的更改/错误.文件名可以说是文件中最重要的属性,因此如果没有该信息,这个查询将变得非常有用.
有没有来自Graph API团队的人请指教?提前致谢.
我们使用此 API在默认文档列表中添加新的隐藏列,以下是有效负载
{
"description": "Test column for testing hidden",
"displayName": "Test_DCR_3",
"hidden": true,
"indexed": false,
"name": "Test_DCR_3",
"required": false,
"text": {
}
}
Run Code Online (Sandbox Code Playgroud)
根据文档,该列应在 UI 中隐藏,但在列表的默认视图中可见,如下所示。
这看起来像是当前使用图形 api 添加列的实现中的一个问题。
这对我们来说是一个阻碍,因为我们不想让最终用户因显示隐藏列而感到困惑,如果有解决方法可以使其正常工作,请告诉我。