2017-02-27 58 views
0

我試圖通過終端來訪問我的驅動器的所有我的文件獲得驅動器的所有文件

/me/drive/root/children 

但是它返回0孩子即使以下意見發生:

  1. 調用/me/drive/root回報:

    」, 「文件夾」:{ 「childCount」:3}, 「根」:{}, 「大小」:28413, 「specialFolder」:{ 「名」: 「文件」} }

  2. 更有趣的是,通過圖形瀏覽器進行API調用: https://graph.microsoft.io/en-us/graph-explorer確實顯示我使用me/drive/root/children時的3個文件。

  3. 當使用/me/drive/root而不是/me/drive/root/children時,圖表資源管理器完全匹配API調用。

這是怎麼回事?

編輯:

繼布拉德建議,我解碼的令牌https://jwt.io/和參數SCP寫着:

scp": "Mail.Send User.Read", 

第二個編輯:

我刪除從apps.dev的所有應用程序的權限。 microsoft.com和我仍然有相同的觀察。看起來我在那裏設置的權限沒有效果。

+1

你可以使用像https://jwt.io/這樣的東西來打開你的認證令牌,並讓我們知道'scp'值是什麼?感覺與權限有關。 – Brad

+0

「scp」:「Mail.Send User.Read」, – elelias

+0

您需要'Files.Read'才能訪問任何文件 - 您可以添加該文件,獲取新的令牌,確認它在' scp'列表,然後再次嘗試撥打電話? – Brad

回答

0

上面的代碼如下位置找到的例子:

https://dev.office.com/code-samples-detail/5989

事實證明,整個混亂是從這裏來的:

microsoft = oauth.remote_app(
    'microsoft', 
    consumer_key=client_id, 
     consumer_secret=client_secret, 
     request_token_params={'scope': 'User.Read Mail.Send Files.Read Files.ReadWrite'}, 
     base_url='https://graph.microsoft.com/v1.0/', 
     request_token_url=None, 
     access_token_method='POST', 
     access_token_url='https://login.microsoftonline.com/common/oauth2/v2.0/token', 
     authorize_url='https://login.microsoftonline.com/common/oauth2/v2.0/authorize' 
) 

我沒有正確的作用域聲明在request_token_params。所以即使應用程序具有權限,但沒有在那裏聲明範圍,您將無法訪問表單。

相關問題