使用MS Graph API访问免费版OneNote遇30108错误求助
问题原因分析
错误代码30108的核心原因是:你使用的是个人Microsoft账户(免费版OneDrive/OneNote),而/me/onenote/pages端点默认会尝试关联OneDrive for Business(属于Office 365商业订阅服务),但你的账户未订阅该服务,因此触发此错误。
解决方案
1. 确认权限配置正确
确保申请Access Token时,请求了针对个人账户的OneNote委托权限:
- 必须包含
Notes.Read或Notes.ReadWrite权限(注意是个人账户的权限范围,不是工作/学校账户的) - 授权流程中要确保用户已同意这些权限
2. 使用正确的访问路径
对于个人OneDrive中的OneNote内容,可通过两种方式访问:
方式一:直接访问个人OneNote资源
先获取个人笔记本列表,再逐级访问分区、页面:
GET https://graph.microsoft.com/v1.0/me/onenote/notebooks
返回正常后,通过笔记本ID、分区ID访问页面:
GET https://graph.microsoft.com/v1.0/me/onenote/notebooks/{notebook-id}/sections/{section-id}/pages
方式二:通过个人OneDrive路径访问
个人OneNote笔记本实际存储在个人OneDrive中,可通过OneDrive端点定位文件后关联OneNote内容:
GET https://graph.microsoft.com/v1.0/me/drive/root:/Documents/OneNote Notebooks/{你的笔记本名称}:/onenote/pages
3. 排除其他可能问题
- 确认个人OneDrive中确实存在已同步的OneNote笔记本(本地仅存储的OneNote需先同步到云端)
- 检查Access Token的
aud字段是否为https://graph.microsoft.com,scp字段是否包含Notes.Read/Notes.ReadWrite权限
内容的提问来源于stack exchange,提问作者Stuart McLaren
相关产品推荐
相关产品推荐

