问题标签 [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 投票
1 回答
188 浏览

com - OneNote 2016:如何:在页面中选择文本并订阅 onClick 事件

我想实现一个具有以下功能的 COM OneNote 加载项(用于 OneNote 桌面):

  • 用户选择一些文本,然后单击加载项公开的 FORMAT 按钮:加载项将以某种特定方式格式化所选文本(例如用“<<>>”包围文本并更改其背景和前景色。
  • 稍后,当用户单击按上述格式设置的文本时,加载项将启动并复制剪贴板中的文本

我是 COM 插件的新手,我找不到好的 API 文档。我从 VanillaAddIn ( https://github.com/OneNoteDev/VanillaAddIn ) 开始,现在我需要添加我的功能。我非常感谢以下方面的任何帮助:

  1. 如何从页面中获取选定的文本?
  2. 如何订阅 OnClick 事件?
  3. 是否有良好/体面的 OneNote API 文档?我找到了一些链接,但我仍然希望到目前为止我错过了一个更好的链接。
0 投票
2 回答
250 浏览

ms-office - OneNote 的 Office JS API - 缺少 API?

OneNote 的 Office JS API... 喜欢它,但我错过了一些关键的东西。有人可以评论吗?

我有一个段落,类型是 RichText。但是,我在 API 中找不到富文本的样式。就我而言,我想知道它是 Header 1,2,3... 还是 Quote 等。

同页链接:在 OneNote 桌面中,我可以右键单击任何文本并将链接复制到该特定段落。稍后单击该链接将直接将我带到该段落。但是,我没有找到可以直接导航到段落的 API,我能找到的唯一一个导航到页面:navigateToPage(page: Page) 和 navigateToPageWithClientUrl(url: string) 如果可能的话?另外,我注意到这些链接在 OneNote 的 Web 版本中根本不起作用,但我猜这是另一回事。

我正在构建(一个免费的!)TOC 加载项,您可以将其放在页面顶部,并且可能会显示所有带有指向页面中标题的链接的标题。然而,上述能力的缺失,使得这样一个简单的插件无法正常工作(或者,至少我认为它是一个非常基础和简单的插件......)

任何帮助将不胜感激!!!就像我说的,如果我解决了这两个问题 - 插件将免费提供。

https://dev.office.com/reference/add-ins/onenote/paragraph?product=onenote

0 投票
1 回答
87 浏览

c# - OneNote 权限问题

我正在尝试创建一个示例应用程序,它可以从我的一个便笺帐户获取和发布新页面。

我正在遵循本指南: https ://msdn.microsoft.com/en-us/office/office365/howto/onenote-auth

我能够通过 microsoft 帐户正确获取访问令牌,但每次调用 OneNote api 都会失败并出现 401 错误。

我正在使用 c# 并使用 HttpWebRequest 来执行调用。

我的嫌疑人与我无法设置的权限有关: https ://msdn.microsoft.com/en-us/office/office365/howto/onenote-auth#onenote-perms-msa

如何设置这些权限?

谢谢大家的帮助。

0 投票
2 回答
520 浏览

onenote - OneNote API 与 SharePoint 文档库中的 OneNote

OneNote API(或图形 API)中是否有办法与存储在某处的 SharePoint 文档库中的 OneNote 文档进行交互?
不是网站笔记本。

谢谢。

0 投票
1 回答
115 浏览

php - 无法登录 OneNote API - login.live.com 脚本拒绝执行

我通过 OAuth 和 OneNote API 登录到我的 OneNote/OneDrive 帐户的 webapp 突然遭到 Chrome Stable 55 的拒绝(Chrome Canary 58 中的同样问题)(在 Windows 10 下),控制台中的响应如下:

我的任何 PHP 身份验证代码都没有变化,它已经运行了好几个月。

我的本地 IIS 服务器和远程 Apache 服务器都存在同样的问题。

我会非常感谢任何建议。

[编辑-2017 年 2 月 3 日]

我刚刚又遇到了同样的拒绝。这是完整的授权 URL(client_id 为空白,jQuery id 被缩短。奇怪的是,我的代码(改编自 OneNote API PHP SDK 示例)中没有任何内容将“&callback=jQuery”添加到查询字符串中:

看起来问题出在 '&callback=jQuery...' 但它是如何附加到查询字符串的???

0 投票
1 回答
302 浏览

c# - 使用 One note API 在 Microsoft 帐户上保存来自 Winform 应用程序的数据

我正在编写一个 ToDo 列表 Winform 应用程序,并且我想使用 One Note API 来将有关任务的信息保存在用户 Microsoft 帐户中。

所以我浏览了 One Note API 文档,但经过几个小时的研究,我没能找到一个好的切入点。

我了解我的第一步是签署此页面上描述的用户: https ://msdn.microsoft.com/en-us/library/hh826543.aspx

问题是实现该步骤的不同方法似乎不适合 Winform 客户端应用程序,也许我应该使用其余 API?

我一直在寻找 .NET 代码示例,但还没有找到,所以我现在很困惑……

谢谢你的帮助 !

0 投票
1 回答
36 浏览

office-js - 在 OneNote 中在线运行我的加载项时,使 Microsoft 加载项区域变大?

我为 OneNote 创建了一个加载项,在线版本。它工作正常,但我似乎无法弄清楚如何使 OneNote 为我的加载项提供的区域更宽(消耗更多的屏幕空间)。我需要的不仅仅是提供的窄列,因为我正在用我的用户界面显示一个宽图形。现在用户必须左右滚动窄列,太多以至于无法提供可用的界面。

请注意,我最初使用 Yeoman Scaffolding 工具来创建我的加载项。

如何使我的代码中的加载项面板/列更宽?我可以使用 OneNote API 或 Microsoft Graph/Fabric API 调用来执行此操作吗?

0 投票
2 回答
195 浏览

azure - 是否可以使用 azure daemon App 操作 OneNote?

为了用azure的daemon app操作OneNote,我新建了一个ClientID,用那个ClientID通过用户认证获取Access Token,并用它实现了对OneNote API的访问。

但是,不是用户认证,而是通过ClientID和证书获取Access Token,拒绝使用它访问OneNote API。(401 Unauthorized)

azure dameon App如何操作OneNote?


我试过的方式

证书创建AccessToken是参照以下实现的。 https://azure.microsoft.com/ja-jp/resources/samples/active-directory-dotnet-daemon-certificate-credential/

具体AccessToken获取代码如下,

有了这个graphToken,就可以成功访问Graph API。

但是,如果目标 URL 是 onenote 上的 API,则会失败。

此请求返回 HTTP 401 Unauthorized 状态。

在 onenoteToken 上访问 OneNote API 时也失败了。

此请求还返回 HTTP 401 Unauthorized 状态。


Azure Active Directory 中的应用程序设置:

  • 类型:
    • WEB 应用程序和/或 WEB API
  • 多租户:
  • 其他应用程序的权限:
    • Graph、OneNote、Active Directory、SharePoint:应用程序权限均已选中。

在目标租户的管理员帐户中,访问并接受以下管理员同意 URL。

https://login.microsoftonline.com/common/adminconsent?client_id={clientID}&state={state}&redirect_uri={redirectUrl}

更新

根据https://stackoverflow.com/a/41890179/1411521的回答,我了解到目前的 Graph API 无法通过 daemon App 访问 OneNote。(2017-1-31)

但是,OneNote API 的应用程序权限可以设置如下。

  • 查看和修改所有用户的注释
  • 查看所有用户的备注

尽管它们是有效的,但以下代码导致身份验证错误(401 Unauthorized)的原因是什么?

0 投票
1 回答
66 浏览

caching - 阻止 OneNote(在线)在开发过程中缓存我的加载项?

我在 OneNote(在线)缓存我的加载项时遇到了烦人的问题。我正在旁加载我的加载项,尽管将新版本推送到我的服务器,并且完全刷新了 OneNote 网页并重新插入我的加载项,但我仍然看到旧的加载项内容。如果我使用加载项清单中的加载项 URL 打开一个新选项卡,那么我确实会看到新内容,因此我几乎可以肯定这是一个缓存问题。换句话说,我在 OneNote 提供的 Add-In IFRAME 中看到了的内容,但是如果我将同一个网页加载到一个全新的选项卡中,我会看到新的内容。

在开发加载项时,是否有设置或可以做些什么来阻止加载项缓存?

注意:虽然我们在等待更好的答案,但现在我正在使用旧技巧来更改清单中的加载项 URL,方法是在每次版本更改时递增的 URL 末尾添加一个良性 URL 参数。希望有人会提供比这更好的解决方案,因为这有点痛苦,但至少现在是这样。

0 投票
2 回答
56 浏览

office-js - 在 outline.paragraphs.items[0].insertRichTextAsSibling('Before', code); 中添加 \n 个字符

我正在尝试通过在 OneNote 的(Web)段落中添加带有 \n 换行符的文本

outline.paragraphs.items[0].insertRichTextAsSibling('Before', text);

问题是这些换行符在一个注释中不可见。它们在页面刷新后可见。我错过了什么吗?

显示行为的 Gif。 http://giphy.com/gifs/l3q2C8LhETxg9KWtO