【问题标题】:Office 365 Api c# Windows ServiceOffice 365 API c# Windows 服务
【发布时间】:2015-05-06 14:57:53
【问题描述】:

我正在尝试使用 Windows 服务中的 Office 365 api 将电子邮件链接到内部项目。

我已经能够使用Office 365 API documentation 进行身份验证

虽然我有一些问题/疑问。 第一个问题: await outlookClient.Me.Folders["inbox"].Messages.ExecuteAsync(); 不适合我,我没有得到任何回应,即使在 5 分钟后...

另一个问题是: 是否可以在启动程序时从不要求 office365 凭据? 因为这是在 Windows 服务中运行的。

有人成功实现了吗? 如果是这样:是否可以获得完整的工作示例? 我现在一直在尝试不同的事情,但很多例子都是针对 asp.net 的,其他总是需要身份验证的。

【问题讨论】:

  • 这个问题解决了吗?我在调用 Office365 API 时遇到了同样的错误。任何帮助表示赞赏。谢谢
  • 嗨,我成功地做到了。但是已经有一段时间了,我不记得我是如何修复它的,抱歉:(我也没有源代码来查看我是如何做到的。(曾经是一次)

标签: c# api office365 outlook-restapi


【解决方案1】:

我没有专门做过服务,但是如果你使用client credential auth flow,它应该可以工作。

该流程将为您提供所需的无人值守服务场景。但是,在某些时候确实必须得到同意。它与客户端凭据流一起使用的方式是您将拥有一个注册网页。 Office 365 组织的管理员将转到该页面并登录并同意您的应用程序。这将是一次性的事情。然后,您的应用将能够以静默方式获取一个令牌,该令牌授予对组织中所有邮箱的访问权限。

【讨论】:

  • 好的,这些信息很有帮助。但是有什么方法可以让我获得一个使用连接的 c# 示例,因为我对身份验证比较陌生
  • 我制作了一个控制台应用程序,可以轻松转换为服务,无需用户直接同意即可从 office365 日历中获取内容。但是认证过程很麻烦。您需要 office365 管理员提供的 x509 证书。使用它,您可以从 AD 获取 OAuth 令牌。然后使用该令牌从 office365 获取内容。我强烈建议您使用 ADAL 库来处理 OAuth 令牌。
  • 巴布,我现在已经能够从 X509 证书中获取令牌,仅使用应用程序。 (证书...)但是当我使用该令牌请求我的消息时,我得到:禁止错误。 reason="OAuth2 AccessTokens for app-only 要求目标邮箱通过 api 调用明确指定" 是否可以共享您的控制台应用程序,以便我可以看到我做错了什么??
  • 您不需要使用 outlookClient.Me 构造,而是指定用户的身份,如 client.Users["user@contoso.com"]。
猜你喜欢
  • 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
相关资源
最近更新 更多