2017-02-27 3 views
0

Je suis en train d'accéder à tous mes fichiers dans mon lecteur via le point finalobtenir tous les fichiers dans le lecteur via l'API REST

/me/drive/root/children 

Cependant, il retourne 0 les enfants, même si les observations suivantes se produisent:

  1. Appel /me/drive/root retours:

    », "dossier": { "childCount": 3}, "root": {}, "taille": 28413, "SpecialFolder": { "name": "documents"} }

  2. Plus intéressant, en faisant l'appel d'API à partir du graphique Explorer: https://graph.microsoft.io/en-us/graph-explorer-t montrent les 3 fichiers que j'ai lors de l'utilisation me/drive/root/children.

  3. L'explorateur graphique correspond parfaitement à l'appel de l'API lors de l'utilisation /me/drive/root, mais pas /me/drive/root/children.

Que se passe-t-il?

EDIT:

Après suggestion Brad je décode le jeton avec https://jwt.io/ et les paramètres scp lit comme suit:

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

Deuxième édition:

J'ai supprimé toutes les autorisations de l'application de apps.dev. microsoft.com et j'ai toujours les mêmes observations. Il semble que les autorisations que j'ai définies n'ont aucun effet.

+1

Pouvez-vous ouvrir votre jeton auth en utilisant quelque chose comme https://jwt.io/ et nous dire quelle est la valeur de 'scp'? Il se sent lié à la permission. – Brad

+0

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

+0

Vous aurez besoin de 'Files.Read' pour avoir accès à l'un des fichiers - pouvez-vous ajouter cela, obtenir un nouveau token, confirmer que c'est dans' ' scp' liste, puis essayez à nouveau l'appel? – Brad

Répondre

0

Le code ci-dessus suit l'exemple à l'adresse:

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

Comme il se trouve, toute confusion venait ici:

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' 
) 

je n'avais pas les champs d'application droite, ont déclaré au request_token_params. Donc, même si l'application dispose des autorisations, sans les étendues déclarées, vous ne pouvez pas accéder aux feuilles.