401未经授权-令牌未被接受

时间:2018-11-29 17:04:20

标签: c# microsoft-graph onenote-api

我已经成功地将Graph API用于各种用途,但是我需要访问OneNote API才能在班级笔记本上执行学生和老师的添加/删除操作。当我使用与https://www.onenote.com资源为Graph进行令牌请求的方式相同时,它会提供一个令牌,但是当我尝试使用令牌访问OneNote API时,无论发送什么(有效)请求,都会得到401-“该请求不包含有效的身份验证令牌。“

我尝试使用v1.0终结点生成令牌,而不是具有相同的结果。

我的令牌请求:

POST https://login.microsoftonline.com/ {我的租户} /oauth2/v2.0/token HTTP / 1.1 接受:application / json 内容类型:application / x-www-form-urlencoded 主机:login.microsoftonline.com 内容长度:213 期望:100-继续 连接:保持活动状态

grant_type = client_credentials&client_id = {my appid}&client_secret = {my secret}&tenant = {my tenant}&scope = https%3A%2F%2Fwww.onenote.com%2F.default

OR

POST https://login.microsoftonline.com/ {我的租户} / oauth2 /令牌HTTP / 1.1 接受:application / json 内容类型:application / x-www-form-urlencoded 主机:login.microsoftonline.com 内容长度:161 期望:100-继续

grant_type = client_credentials&client_id = {我的appid}&client_secret = {我的秘密}&resource = https%3A%2F%2Fwww.onenote.com

两者都返回包含access_token的内容,例如: {“ token_type”:“承载者”,“ expires_in”:“ 3600”,“ ext_expires_in”:“ 3600”,“ expires_on”:“ 1543513719”,“ not_before”:“ 1543509819”,“资源”:“ {{3} }“,” access_token“:” {一个令牌}“}

请求: GET https://www.onenote.com {group id} / notes / HTTP / 1.1 ContentType:application / json 授权:无记名{令牌/令牌请求返回} 缓存控制:无存储,无缓存 主持人:www.onenote.com

响应: 代码= 40001 message =该请求不包含有效的身份验证令牌。

作为参考,此问题基本上是对https://www.onenote.com/api/v1.0/myorganization/groups/

的后续操作

1 个答案:

答案 0 :(得分:0)

您在正确的轨道上。 资源是使用1.0身份验证端点的正确方法。 范围需要在应用程序门户上注册,因此您需要返回并在门户中添加OneNote范围。

我不确定100%,但是IIRC onenote的资源可能需要结尾的'/'。