尝试使用 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 而不是端点。该死的,我在这上面浪费了很多时间。当您复制并粘贴时会发生这种情况
不确定我在这里做错了什么 我正在尝试使用 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 而不是端点。该死的,我在这上面浪费了很多时间。当您复制并粘贴时会发生这种情况