尝试使用 Python、请求和 MS Graph API 更新 OneNote 页面导致 "Unknown error"

Trying to update a OneNote page using Python, requests and MS Graph API results in "Unknown error"

不确定我在这里做错了什么 我正在尝试使用 Python 脚本来更新我可以正常检索的 OneNote 页面 我正在使用设备身份验证流程,当我获取令牌时发送的范围是这些

scopes=[
        "Notes.Read",
        "Notes.Read.All",
        "Notes.ReadWrite",
        ]

我可以使用这个阅读页面

headers={'Authorization': 'Bearer ' + token}
content_end_point='https://graph.microsoft.com/v1.0/users/{my-user-id}/onenote/pages/{page-id}/content?includeIDs=true'
content=requests.get(content_end_point,headers=headers)
print(content.text)

现在我正在使用上面确认可访问的 link 来更新同一个页面

headers={'Authorization': 'Bearer ' + token,'Content-Type': 'application/json' }
content_end_point='https://graph.microsoft.com/v1.0/me/onenote/notebooks/pages/{page-id}/content'

data= {
    'target':'body',
    'action':'prepend',
    'content':'<p data-id="first-child">New paragraph as first child in the first div</p>'
  }

result=requests.patch(endpoint,headers=headers,json=data)
print(result.text)

我收到这个错误

{
  "error": {
    "code": "UnknownError",
    "message": "{\r\n  \"Message\": \"No HTTP resource was found that matches the request URI 'https://www.onenote.com/api/v1.0/users('myname@email.com')/notes'.\"\r\n}",
    "innerError": {
      "request-id": "334a17e2-09f2-4744-900b-29b325dd1e64",
      "date": "2020-05-19T03:08:51"
    }
  }
}

更新:尝试创建新页面会导致相同类型的错误 Update2:这里有趣的是,当我尝试使用 MS Graph API. 时,关于 OneNote APIs 的回复 我去了 Portal.azure.com 并且我对 MS Graph 进行了更多写入(它只读并且上面提到的其他权限应用于 OneNote。)这并没有改变任何东西 我将稍等片刻,看看这是否是权限传播错误并解决了问题。 如果我仍然看到 OneNote 消息,这意味着这里有问题,应该是 MS Graph 回复我

更新2:以下是OneNote和MSGraph的权限(范围)

scopes=[
        "Notes.Read",
        "Notes.Read.All",
        "Notes.ReadWrite",
        "Notes.ReadWrite.All", 
        "Notes.Create",
        "Notes.ReadWrite.CreatedByApp"
        ]

但我仍然收到有关 OneNote 无法找到 URI 的相同错误消息

更新 3

headers={'Authorization': 'Bearer ' + token,'Content-Type': 'application/json' }
content_end_point='https://graph.microsoft.com/v1.0/me/onenote/pages/{page-id}/content'

data= {
    'target':'body',
    'action':'prepend',
    'content':'<p data-id="first-child">New paragraph as first child in the first div</p>'
  }


result=requests.patch(endpoint,headers=headers,json=data)
print(result.text)

以上仍然给我同样的错误。很抱歉最初的粘贴,这是由于多次尝试找到一种方法来完成这项工作。我知道那个页面,我试过

{
  "error": {
    "code": "UnknownError",
    "message": "{\r\n  \"Message\": \"No HTTP resource was found that matches the request URI 'https://www.onenote.com/api/v1.0/users('my@email.com')/notes'.\"\r\n}",
    "innerError": {
      "request-id": "bcc11791-d847-46af-b6ee-e3fd060c4ca0",
      "date": "2020-05-20T01:01:50"
    }
  }
}

不确定这是否相关,但是当我尝试使用 MS Graph Explorer 时,我无法使用 "Create a page" 示例。该示例应该加载一个模板,我应该在其中替换 ID...并添加页面内容。没有发生!

这完全是我的愚蠢行为 我在定义

content_end_point='https://graph.microsoft.com/v1.0/me/onenote/pages/{page-id}/content'

但是我打电话 结果=requests.patch(端点,headers=headers,json=data)

端点具有此值 https://www.onenote.com/api/v1.0/users('my@email.com')/笔记'

所以上面的代码工作得很好,但在我发布的问题中使用 content_end_point 而不是端点。该死的,我在这上面浪费了很多时间。当您复制并粘贴时会发生这种情况