2017-02-27 102 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。所以即使应用程序具有权限,但没有在那里声明范围,您将无法访问表单。

相关问题