我正在为.one文件扩展名创建一个解析器,完成后我将其添加到Apache Tika项目中。
这是我正在创建的APL 2.0许可的开源项目:https : //github.com/nddipiazza/onenote-parser-java
我在这里使用了规范文档:https : //docs.microsoft.com/zh-cn/openspecs/office_file_formats/ms-one/73d22548-a613-4350-8c23-07d15576be50
首先,我移植了这个开源C ++项目中的代码:https : //github.com/dropbox/onenote-parser
我在解析文档方面已经走了很长一段路,但是遇到了障碍。
这是我用来解析的OneNote文件:https : //drive.google.com/file/d/1uROTEnKeBKU08CG_K5zdDTGHa178LgBK/view? usp =sharing
我无法在解析的结果中查看Section1TextArea1和Section1TextArea2。因此,我缺少某种关键数据解析元素或其他东西。
它绝对在OneNote文件本身中。我可以在十六进制查看器中看到它:
这是JSON解析输出:https : //gist.github.com/nddipiazza/02d2252d357b3b02a6b9ab1050474267
我觉得规范文档缺少解析该专有格式所需的一些非常重要的信息。
我缺少哪些主要元素,导致我没有获得实际的文本内容?
TL; DR
我如何可以设置Content-Type每个标题单独文件/输入/文本中multipart/form-data(在失眠)的要求?
我正在尝试使用Insomnia Rest Client POST到OneNote API(HTTP描述).根据文档,我需要提交一个multipart/form-data带有标题的文件/文本的请求:
Content-Type: text/html
Content-Disposition: form-data; name=presentation
另一个带标题:
Content-Type: application/inkml+xml
Content-Disposition: form-data; name=presentation-onenote-inkml
这是我正在尝试的截图:
如您所见,API返回错误,No Content-Type导致我认为Content-Type未设置标头.调试信息如下:
POST数据被隐藏,这使我无法看到Content-Type.
我是一个应用程序的创建者,该应用程序通过适用于 Android/iOS 的 Microsoft 图形 SDK 与 OneNote API 集成。我的几个用户报告说,新的 OneNote 笔记停止与应用程序同步(受此影响的还有数百个)。
我一直在调试这个。我可以确认 OneNote API 不会返回新页面。重现:
1) create some new notes
2) go to Graph Explorer (https://developer.microsoft.com/en-us/graph/graph-explorer/)
3) user basic query (https://graph.microsoft.com/v1.0/me/onenote/pages)
Run Code Online (Sandbox Code Playgroud)
即使几天后,也不会返回新页面。我的应用程序使用相同的端点来获取最新的页面。
如果有人能调查一下,我将不胜感激。我可以提供调试所需的所有数据。
旁注:官方 OneNote 应用程序可以正确查看笔记(在 iOS 和 Android 上)。
更新
MS Graph Explorer 开始显示 5 天前添加的注释(我们的用户报告相同)。因此,传播数据似乎有很长的延迟(官方 OneNote 应用程序几乎立即同步新页面)。收到 OneNote 团队对此的回应会很棒。
看起来类似的问题是 2 年前报道的
有没有办法克服 OneNote 客户端和 API 结果变化之间的滞后?
使用“FavorDataRecency”标头进行了测试,但仍然没有结果。
更新 2 (05.02.2020) 新笔记完全停止显示(即使在几周后测试)。有趣的是,如果我创建一个新部分,该部分会立即从 API 端点弹出(只是名称,没有注释)。
我正在使用 MS 图形端点集成 OneNote 应用程序。为了对用户进行身份验证,我使用 azure v2.0 端点。microsoft graph platform、onenote 和 azure 提供的测试/沙箱环境是否相同。
目前我使用的端点如下 -
获取 onenote 笔记本 - https://graph.microsoft.com/v1.0/me/onenote/notebooks
使用 Azure v2.0 对用户进行身份验证 - https://login.microsoftonline.com/common/oauth2/v2.0/authorize https://login.microsoftonline.com/common/oauth2/v2.0/token
这些端点适用于所有环境,包括开发/生产/测试。我们在https://apps.dev.microsoft.com/注册的应用程序类型是否重要?
我正在尝试在知道引用此https://docs.microsoft.com/en-us/graph/onenote-update-page的页面 ID 的页面中添加一些新文本
我只想添加一个新的文本框。似乎它只是divhtml 的另一个。你怎么只div在正文中添加一个?
我想插入一个新的文本框,上面写着“你好世界”。
我已经尝试了该页面上的代码,它所做的只是添加到现有的文本框。
我正在使用 python 请求。
这是我关于Stackoverflow的第一篇文章-我正在寻找有关OneNote API的指南。我期望开发主要针对“自用”的解决方案-在本机上创建,打开和关闭OneNote部分-无需使用云等。请指导是否有可能?
我希望这是可能的-请指导如何进行以及学习哪些内容。我的编程技能非常基础。
我将更喜欢使用OneNote 2007。
[在IST 11月5日中午编辑]可能需要一些澄清:我最初浏览了https://msdn.microsoft.com/zh-cn/library/office/dn575425.aspx,但是,我发现“ OneNote API在Microsoft全球可用的云上运行,并将数据从您的应用程序发送到用户的OneDrive”。在我的情况下,不涉及其他用户或云。我希望“主要针对“自用”开发解决方案-在本地计算机上创建,打开和关闭OneNote节”。看来“ Sebov1c” msdn.microsoft.com/en-us/library/office/jj680118.aspx建议的链接和“ Jorge Aguirre”建议的另一个链接都可以达到我的目的。下周我将在这个主题上做作业,然后回到这里。
谢谢并恭祝安康
桑吉夫
我正在尝试读取.one文件(OneNote文件),并想将其内容写入文本文件,但是没有找到使用Python进行编码的单一方法。请帮我解决一下这个。
我正在执行图形批量调用来重命名 OneNote 页面标题,我正在遵循图形网站上提供的这些示例。
为了简单起见,以下是一个具有单个请求的示例(通常在我的场景中存在多个请求)。
发布https://graph.microsoft.com/v1.0/$batch
{
"requests":[
{
"id":"1",
"method":"PATCH",
"url":"https://graph.microsoft.com/v1.0/me/onenote/pages/1-98c2295df76a4067a6036efc6a8f6f74!84-f754d551-02d2-4416-af42-8fcc644f10e6/content",
"headers":{
"Content-Type":"application/json"
},
"body":[
{
"target":"title",
"action":"replace",
"content":"2 - Test1"
}
]
}
]
}
Run Code Online (Sandbox Code Playgroud)
我收到此呼叫的 400 响应,其中包含以下消息
{
"error": {
"code": "BadRequest",
"message": "Invalid JSON body for request id : 1",
"innerError": {
"request-id": "2cc6bfcc-6ce5-471c-af37-181ef0dd5a9e",
"date": "2018-10-22T10:06:54"
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果我在一次调用中执行相同的请求而不进行批量处理,则效果很好。我已经做了足够的调查,找不到任何在批处理请求正文中传递数组的示例。是不是批处理请求正文中不支持数组内容,或者 OneNote 调用与批处理不完全兼容?
注意:我尝试在正文中提供不带数组的内容,但也失败并显示消息“不支持指定的方法”。
我可以获取 OneNote 笔记本的内容,但无法从页面获取 InkNode 内容。页面内容返回的 HTML 有一个 HTML 注释,表明不支持 InkNode。
知道什么时候会实施吗?
onenote-api ×10
onenote ×7
python ×3
api ×1
azure ×1
insomnia ×1
java ×1
office365 ×1
python-3.x ×1
rest ×1
rest-client ×1