2016-05-27 3 views
0

私の言葉が奇妙な場合は、ごめんなさい。
参考資料:https://graph.microsoft.io/en-us/docs/api-reference/v1.0/api/drive_sharedwithme
サインインしたユーザーの「共有アイテム」のリストを取得し、リストのアイテムをダウンロードするdownloadUrlを含むボタンを提供したいとします。問題は私がdownloadUrlを取得できないことです。
私がしていることは次のとおりです:
1.リクエストGET /me/drive/sharedWithMe この呼び出しは成功しました。応答は一般的に文書の場合と同じです。グラフAPIを使用して共有アイテムにアクセスすると、401権限が付与されない

object(stdClass)#3 (6) { 
     ["@odata.type"]=> 
     string(26) "#microsoft.graph.driveItem" 
     ["createdDateTime"]=> 
     string(20) "0001-01-01T00:00:00Z" 
     ["id"]=> 
     string(34) "01TWWV5W37UJKHFIUBZZBZDEHOJNVOEZVP" 
     ["lastModifiedDateTime"]=> 
     string(20) "2016-05-20T05:39:00Z" 
     ["remoteItem"]=> 
     object(stdClass)#4 (5) { 
     ["file"]=> 
     object(stdClass)#5 (0) { 
     } 
     ["id"]=> 
     string(34) "01TWWV5W37UJKHFIUBZZBZDEHOJNVOEZVP" 
     ["name"]=> 
     string(7) "2NF.PNG" 
     ["parentReference"]=> 
     object(stdClass)#6 (1) { 
      ["driveId"]=> 
      string(66) "b!XxxqXZ1tqUGbTG6lCAZp8lCk94i3qvhJt1qf0GJTLQf11toCmqOoS4hkfSFKzG0F" 
     } 
     ["size"]=> 
     int(0) 
     } 
     ["size"]=> 
     int(0) 
    } 

私は「driveId」との項目の「ID」を取得応答から: はここで応答の一部です。彼らは、ステップ2

2.要求GET /drives/<remoteItem.driveId>/items/<id>
に使用されますこれは私がdownloadUrlを取得する方法ですが、この呼び出しは、私は、この401権限エラー応答できます:

{"error":{"code":"-2147024891, System.UnauthorizedAccessException","message":"Access denied. You do not have permission to perform this action or access this resource.","innerError":{"request-id":"64f90e20-92a4-4002-8833-da5de026c076","date":"2016-05-27T10:30:58"}}} 


これを修正するには、私はいくつかのアクセス許可を有効にしようとしました:Files.Read.All & Sites.Read.All。ここ
は私の有効なアクセス許可

scp: "Calendars.ReadWrite Contacts.ReadWrite Directory.ReadWrite.All Files.Read Files.Read.All Files.ReadWrite Group.ReadWrite.All Mail.ReadWrite Mail.Send Sites.Read.All User.Read User.Read.All User.ReadWrite", 


の全てを見るために私のデコードaccess_tokenはの一部であり、私はここで聞かことである:それは私に401権限エラーになりますなぜですか?それを修正する方法は?

おかげさまで、ありがとうございました。その長い水平コード部分と悪い英語を残念に思っています。

+0

あなたのシナリオでは、GET/drive/items/01TWWV5W37UJKHFIUBZZBZDEHOJNVOEZVP –

答えて

0

私はgithubのmicrosoft graph apiに尋ねて、そこで私の答えを見つけました。
ここにありますlink
私のユーザーアカウントにはhttp://mytenant.sharepoint.com/へのアクセス権がないため、401 Unauthorizedエラーの原因は何ですか?
許可が与えられたので、ステップ2を再度要求します。応答には私が必要とするdownloadUrlが含まれています。
お返事ありがとうございました。ご迷惑をおかけして申し訳ございません。

0

アイテムを参照するためにsharedWithMe経由でアイテムを検索するときは、リモートアイテム参照情報ではなく、返されたアイテムのIDを使用する必要があります。

sharedWithMeから返されるアイテムは、OneDrive内の特別なトンネルであり、実際のアイテムは、その情報がremoteItemファセットで提供されます。読みやすくするために

はここSharedWithMeで返される項目の例JSONです:

{ 
    "id": "DA5D51067000136E!303", 
    "remoteItem": { 
     "id": "8BF6000DBC6C4A4C!3275", 
     "parentReference": { 
      "driveId": "8bf6000dbc6c4a4c" 
     } 
    } 
} 

アイテム情報の内容を取得するには、デフォルトのドライブで次のGETリクエストを使用し

GET /drive/items/DA5D51067000136E!303 
+0

私はあなたの提案をお試しいただけますが、残念ながら、まだ動作していません(同じ401エラー)。なぜ自分のアイテムのIDとremoteItemファセットのIDが同じ値で、あなたのように違うのだろうと思います。 –

関連する問題