0

不知道我在这里做错了什么我正在尝试使用 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)

现在我正在使用上述确认为可访问的链接来更新同一页面

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"
    }
  }
}

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

Update2:以下是 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 时,我无法使用“创建页面”示例。该示例应该加载我应该替换 ID 的模板......并添加页面的内容。没有发生!

4

1 回答 1

1

这是我定义的纯粹愚蠢的案例

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

但我正在调用 result=requests.patch(endpoint,headers=headers,json=data)

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

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

于 2020-05-21T21:13:37.940 回答