2017-05-05 84 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,所提供的僞代碼應該可以爲您提供所需的一切。

相關問題