Saya sedang mengerjakan aplikasi manajemen dokumen, di mana pengguna harus dapat mengakses folder di oneDrive, terkadang mengerjakan dokumen/file yang sama, mengedit, menyalin dokumen di aplikasi, dan mengunggah dokumen dari aplikasi ke oneDrive. Dan itu berarti folder itu harus tersedia untuk semua pengguna yang memiliki hak. Saya dapat membuat semua berfungsi ketika saya menggunakan akun pribadi saya, misalnya saya menggunakan url ini untuk mendapatkan daftar file dari folderX:"https://graph.microsoft.com/v1.0/me/drive/root:/folederX:/children"" , semua berfungsi dengan baik. Tetapi ketika saya menggunakan akun bisnis, itu tidak berfungsi. Saya mengautentikasi melalui ID penyewa dan saya mendapatkan token yang benar, tetapi setelah itu saya mendapatkan 400 kesalahan. Sekarang, saya benar-benar bingung apakah yang ingin saya capai di sini benar-benar mungkin melalui oneDrive for business atau kita harus menggunakan sharepoint? Karena ternyata folderX dibagikan dengan saya di akun bisnis oneDrive dan tidak ada di oneDrive saya sendiri. Maaf jika pertanyaannya tampak bodoh tetapi saya benar-benar bingung di sini.

Kesalahannya adalah:

Ini kesalahan: { "error": { "code": "accessDenied", "message": "Ada kesalahan saat mengotentikasi permintaan.", "innerError": { "request-id": "230e946c-d81a- 4bf1-903e-26d92c5441db", "tanggal": "2019-09-20T10:12:38" } } }

0
Mirana 21 September 2019, 14:40

1 menjawab

Jawaban Terbaik

Saya memahami bahwa Anda mencoba menggunakan Akun Microsoft pribadi untuk mengakses file yang telah dibagikan dengan Anda di OneDrive for Business pelanggan Anda. Koreksi saya jika ada kesalahpahaman.

Jika demikian, Anda perlu menggunakan Alur pemberian kode OAuth 2.0 untuk mendapatkan token akses.

Pertama, saya berasumsi bahwa Anda telah menambahkan akun pribadi Anda sebagai pengguna tamu ke Azure AD pelanggan Anda. Dan file tersebut telah dibagikan dengan akun pribadi Anda. Dan izin yang didelegasikan dengan benar telah ditetapkan di Aplikasi yang terdaftar di Azure AD pelanggan Anda.

Minta kode otorisasi seperti ini:

https://login.microsoftonline.com/{Tenant ID of your customer}/oauth2/authorize?
client_id={app id of the app registered in your customer's Azure AD}
&response_type=code
&redirect_uri={redirect uri of the app registered in your customer's Azure AD}
&response_mode=query
&resource=https://graph.microsoft.com
&state=12345

Anda akan mendapatkan balasan seperti ini:

https://localhost/?code={code}&state=12345&session_state=54572324-6121-4add-85f8-22e3a815646b

Silakan salin "kode" di sini untuk penggunaan yang terlambat.

Kemudian Anda dapat mengirim permintaan untuk token akses:

enter image description here

Ganti "jmaster.onmicrosoft.com" dengan penyewa pelanggan Anda dan ubah nilai lainnya (termasuk client_id, client_secret, redirect_uri dan kode ) di Badan.

Setelah mendapatkan token akses, Anda dapat mengirim permintaan untuk mengakses file yang dibagikan.

https://graph.microsoft.com/v1.0/users/{user id}/drive/root:/folederX:/children

Harap dicatat bahwa "pengguna" di sini adalah yang berbagi file dengan Anda.

0
Allen Wu 23 September 2019, 03:50