2017-05-05 83 views
1

我已经看过StackoverFlow和web上的两个类似问题,但我仍然不明白我该怎么做。Microsoft OneDrive API InvalidAuthenticationToken CompactToken解析失败,错误代码为:-2147184105

我想使用bash脚本(使用curl)以编程方式下载位于OneDrive上的文件。

所以我见过here,我可以使用代码流程访问Microsoft Graph。所以我继续这样的(我自己的灵感来自Jay Lee answer):

1 - 我得到的代码与此URL https://login.live.com/oauth20_authorize.srf?client_id=10c492f9-132a-4079-adae-382dad9d4339&scope=onedrive.readonly&response_type=code&redirect_uri=https://login.microsoftonline.com/common/oauth2/nativeclient

2 - 然后我交换授权代码访问令牌与此网址: curl -X POST https://login.live.com/oauth20_token.srf -d "client_id=${client_id}&redirect_uri=${redirect_uri}&code=${auth_code}&grant_type=authorization_code" --header "Content-Type:application/x-www-form-urlencoded"

我单词和到期时间存储在一个文件

3-我做了一些程序来处理的事实,我必须刷新令牌(根据到期时间)。

4-我用我的令牌与微软图形

api_data=$(curl https://graph.microsoft.com/v1.0/me/drive/items/B8D9948257F95B84%21104/content -H "Authorization: Bearer $access_token") echo -e "$api_data"

的problem-编程下载我的文件,当我运行该程序,我得到这个:

enter image description here

如何来?

回答

1

您正在对错误的端点进行身份验证。 login.live.com端点无法为Graph提供有效标记。相反,您需要使用v2 Endpoint

检出Microsoft v2 Endpoint Primer进行演练。鉴于您使用的是curl,所提供的伪代码应该可以为您提供所需的一切。

相关问题