问题标签 [onenote-api]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
537 浏览

onedrive - 如何在 MVC 网站中使用 OneNote API、Office 365 API 或 OneDrive API 在电子邮件列表之间共享 Microsoft OneNote 笔记/部分/笔记本?

我需要能够创建 OneNote 笔记/部分/笔记本,并在来自 Asp .NET MVC 网站的特定用户列表之间共享它们。我怎么能那样做?

0 投票
1 回答
576 浏览

c# - 使用其 API 将内容添加到 OneNote 时“该部分是只读的”

目前,我正在尝试使用参考UpdatePageContent提供的 OneNote API 中的函数将内容添加到 OneNote 2013 页面Microsoft.Office.Interop.OneNote。但是,我总是得到错误代码0x80042001,在文档中描述为XML 无效。但是,我无法理解以下简单代码中的 XML 无效的原因。

页面 ID 是从 OneNote Notebook 层次结构中获得的,我可以确认它是正确的,因为调用GetPageContent使用相同的 ID 工作正常。所以在我看来,XML 实际上一定存在一些问题。我错过了什么?


编辑:根据 dbc 的评论,我更深入地研究了这个答案,它最初似乎来自这里,尽管它处理的是编辑 OneNote 页面中的现有条目而不是添加新内容,这是我想要做的。将建议的代码减少到必要的代码给我留下了以下内容:

但是,现在我收到错误0x8004200B,这在文档中解释为该部分是只读的。当然,没有设置只读访问权限,手动编辑该页面我也没有问题。此外,谷歌对该错误并没有真正的帮助。

也许不同的错误代码意味着我的 XML 现在具有 OneNote 接受的格式(尽管我看不出与以前的方法有什么不同)。但是我仍然没有修改现有页面的运气。特别是,两个链接的线程表明上述代码应该开箱即用,因为它在两种情况下都是公认的答案。另一方面,在我的场景中,这根本不起作用。这里发生了什么?


编辑 2:我的第二个代码块在运行 Win 7 x64、OneNote 2013 和 Visual Studio 2015 的另一台机器上工作,到目前为止我使用的机器正在运行 Win 7 x86、OneNote 2013 和 Visual Studio 2010。所以也许 VS2010 库是只是到老才能正确与 OneNote 2013 交谈?我将尝试收集更多信息,看看我是否可以从中做出答案。

0 投票
2 回答
1130 浏览

c# - 如何在python中调试win32com调用

为了从日志记录脚本收集输出,我想使用onepy将信息添加到 OneNote 2013 笔记本。不幸的是,update_page_content()onepy提供的方法对我不起作用。为了更深入地理解这个问题,我切换到 C#,那里有许多 OneNote API 的在线示例,经过一些麻烦,我设法让以下简约 C# 示例工作:

该字符串xml是通过修改 XML 文档获得的,该文档是使用该GetPageContent方法从 OneNote 中检索的,如我之前链接的问题中所述。这个问题的具体内容xml无关紧要,唯一重要的是,上述程序多次运行都没有问题,并且对现有 OneNote 页面的更改总是成功执行。

现在转到 Python,我尝试在不进行实质性更改的情况下翻译我的简约程序。我的结果如下所示:

我试图非常小心地为这两个变量使用相同的值。当然,这两个字符串的内容xml是相同的(复制粘贴)。此外,根据 VS2015 调试器,两者都DateTime.MinValuedate同一日期。但是,当我执行 python 程序时,我收到了这个非常无益的错误。

据我了解,C# 和 Python 实际上都使用同一个库来执行它们的调用(都称为Microsoft OneNote 15.0 Object Library)。因此,原则上这两个程序都应该可以正常工作。如果我在这一点上没有记错的话,我会假设 Python在调用库时做了一些不同的事情。我如何进一步追踪这里的实际问题是什么?有没有办法使用 Visual Studio 2015 的内置 Python 支持来更好地理解 C# 和 Python 代码之间的区别?

0 投票
1 回答
213 浏览

uwp - 从通用 Windows 应用程序 10 中的共享 onenote 链接中检索笔记本

是否可以在 UWP 应用程序中打开共享笔记本?目前,我正在开发一个应用程序,它必须打开一个具有读写权限的团队共享笔记本才能以协作方式工作。

编辑

我尝试从 github 运行“OneNoteServiceSamplesWinUniversal”并找到查询“ https://www.onenote.com/api/v1.0/me/notes/notebooks ?$filter=userRole ne Microsoft.OneNote.Api.UserRole'Owner '" 应该返回共享笔记本(在提供适当的不记名令牌之后);但它不返回任何结果。注意 - 当我在 Note (windows 10) 应用程序上添加我的帐户时,它会显示与我共享的那些笔记本。

让我知道 API 是否返回那些托管在企业 O365 帐户上的笔记本?

0 投票
2 回答
699 浏览

vba - 如何在 Microsoft OneNote 2013 中突出显示语法?

我想在 Microsoft OneNote 2013 中使用宏或脚本突出显示我选择的编程语言(专有)的语法。我为 MS OneNote '13 找到了一个免费的宏创建器,它允许创建名为“ OneTastic ”的自定义宏。我创建了一个宏,它给出了两个数组,其中包含与不同颜色相关联的预定义单词列表以给出每个列表(例如:列表 1 单词 = 蓝色,列表 2 单词 = 橙色等)

API: https ://www.omeratay.com/onetastic/docs/

问题:搜索逻辑是在更大的单词中查找单词,例如单词“doma in ”(doma IN)中的“IN”。我的代码如下:

OneTastic 语法荧光笔脚本

0 投票
2 回答
1074 浏览

rest - OneNote REST API - 如何处理“502 Bad Gateway”错误?

我在 OneNote 开发博客上问了这个问题, http://blogs.msdn.com/b/onenotedev/archive/2016/01/13/onenote-api-throttling-and-best-practices.aspx - Jorge 建议问再来这里。

我可以使用
POST ...beta/me/notes/notebooks/{master notebook}/copynotebook使用 REST API 创建多个笔记本,
调用速度非常快。

使用
POST ...beta/me/notes/pages/{template page}/copyToSection添加页面
可以正常工作,并允许我获取 pageID。

这一切都按预期工作,直到笔记本的数量超过似乎少数笔记本可能少于 50 个。在此之后,任何获取 pageID 的命令,例如 GET .../beta/me/notes/sections/{sectionID }/pages?top=100"
导致多个“502 Bad Gateway”响应,并且在循环 10-15 分钟等待“200 OK”后偶尔会通过。

当笔记本计数达到大约 100 时,所有页面调用都会在我的 php 脚本、Fiddler 或 Microsoft Graph Explorer 中失败。删除笔记本会返回功能。

我知道有 5000 个笔记本的限制,但是页面 API 功能是否有下限(部分和笔记本调用继续有效)。是否可以只选择笔记本的一个子集来“激活”以减少 API 调用的开销?

我目前的解决方法(我正在尝试)是使用 OneDrive API 下载或将 NoteBooks 从 OneDrive 中移出以完成同样的事情 - 还有其他方法吗?

0 投票
2 回答
144 浏览

onenote - Onenote API 失败

当我尝试获取网站集和网站 ID 时,出现以下错误。可能是什么原因?任何帮助将非常感激。

0 投票
1 回答
530 浏览

onenote - StatusCode: 429 Too Many Requests 在使用 APP 访问托管在 sharepoint 中的 onenotes 时

当我访问托管在共享点中的一个笔记时,我收到以下响应。如何克服这个错误?

0 投票
1 回答
148 浏览

sharepoint-online - 查询 O365 SharePoint SiteId 时,OneNote API 间歇性返回 HTTP 400

我的代码调用 OneNote API 将 SharePoint Online 网站 URL 解析为 SiteCollectionId 和 SiteId。我们得到一个不记名令牌,设置 HTTP auth 标头并发出 GET 请求:

大约一周以来,它一直在返回预期的响应,类似于:

但是,今天它决定在 10 个请求中大约有 9 个返回以下内容:

Microsoft 文档(链接)将错误 20158 解释为:
无法获取请求中指定的站点 URL 的元数据。检查提供的 URL 的格式。支持的格式包括https://domain.sharepoint.com/site-ahttps://domain.com/sites/site-a。(SharePoint 支持在预览中。) “我不知道这是在预览中(我认为它是 GA),但无论如何它并没有解释为什么它间歇性地适用于完全相同的输入(相同的 URL 和不记名令牌)。

会不会只是 OneNote API 或 SharePoint API 中的一个错误,它必须在幕后调用?

0 投票
1 回答
185 浏览

onenote-api - OneNote API 在查询 /notes/notebooks 时返回 HTTP 500

我的代码调用 OneNote API 来检索 O365 SharePoint 网站中的笔记本列表。我们得到一个不记名令牌,设置 HTTP auth 标头并发出 GET 请求:

这通常有效,但昨天它间歇性地返回一个 HTTP 500 响应,今天它每次都返回一个 500 响应:(

我们捕获响应中的所有 HTTP 标头,包括 X-CorrelationId - 这是今天的一个:

解析 URL -> SharePoint SiteId 的 FromUrl API 调用,我们现在进行一次并缓存很长时间,因为该映射几乎是静态的。然而,站点中的笔记本会随着用户创建/删除/重命名它们而经常更改,因此我们每次都需要获取新数据。OneNote API 根本就不稳定?


编辑

我们注意到这可能是用户的 OneDrive for Business 的可用性。我相信这些 OneDrives 是隐藏的 SharePoint 文档库,在用户首次访问时按需创建。对于以前从未访问过 OneDrive 的用户,我们似乎收到了 500 条回复,但对于曾经访问过 OneDrive 的用户来说却是成功的。从表面上看,这似乎很清楚:用户必须在调用 OneNote API 之前访问过他们的 OneDrive,否则返回 500。

但是,这似乎在租户之间不一致:我们有一个 O365 租户,但情况并非如此,即使用户没有 OneDrive,API 也会成功返回。所以我的问题是:1) 用户的 OneDrive 的可用性是否会有所不同,以及 2) 为什么这会因租约而异?


编辑#2 这已由 Microsoft 开发人员支持升级工程师确认 - API 要求用户已经拥有 OneDrive。这是一个错误,因为 API 调用应该在外部 SharePoint 文档库中列出 OneNotes,因此不应该关心用户是否为他们配置了 OneDrive。我知道他们要解决的问题已经积压...