【问题标题】:Using Client Credentials with Microsoft Graph OneNote API on Office 365 Business在 Office 365 商业版上将客户端凭据与 Microsoft Graph OneNote API 结合使用
【发布时间】:2018-05-26 10:39:38
【问题描述】:

我正在构建一个应用程序(来自 LabVIEW 的 HTTPS 调用),它将在 Office 365 上更新我的企业 OneNote 笔记本,而无需任何用户交互。因此,我选择使用客户端凭据流并通过 Microsoft Graph 将 Azure AD 中的应用程序权限授予我的应用程序(读取和写入所有 OneNote 笔记本)。 我参考了以下页面中提到的说明:

https://msdn.microsoft.com/en-us/office/office365/howto/onenote-auth-appperms

https://developer.microsoft.com/en-us/graph/docs/concepts/permissions_reference

https://docs.microsoft.com/en-gb/azure/active-directory/develop/active-directory-v2-protocols-oauth-client-creds

https://developer.microsoft.com/en-us/graph/docs/concepts/auth_v2_service

https://developer.microsoft.com/en-us/graph/docs/concepts/onenote-create-page

我能够从 Microsoft Graph 获取访问令牌,但是一旦我尝试通过对 URL 进行 POST 调用来使用它来更新我的笔记本 https://graph.microsoft.com/v1.0/me/onenote/pages 我得到错误: “无法检索此用户帐户的 OneDriveForBusiness。”代码 - 30108

但是,我完全能够使用创建应用程序的同一帐户和我用来授予权限的租户 ID 在线访问 OneDriveForBusiness。有人可以澄清对于我的要求所必需的 O365 和 OneDriveForBusiness 订阅的类型是否有某些限制吗?哪些特定订阅或它们的组合可以让我实现所需的流量?

【问题讨论】:

    标签: microsoft-graph-api onenote-api


    【解决方案1】:

    您不能将/me 与客户端凭据一起使用。 /me/users/{currentUserId 的别名,但由于您使用的是客户端凭据,因此 API 的上下文中有一个用户可以将该别名映射到。在这种情况下,您实际上是在调用/v1.0/users/NULL/onenote/pages

    您需要明确指定要访问的用户:

    /v1.0/users/{userId or userPrincipalName}/onenote/pages
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-30
      相关资源
      最近更新 更多