首页 文章

在Office 365 Business上使用客户端凭据与Microsoft Graph OneNote API

提问于
浏览
1

我正在构建一个应用程序(来自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我收到错误:"The OneDriveForBusiness for this user account cannot be retrieved." Code - 30108

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

1 回答

  • 1

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

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

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

相关问题