Rumah  >  Artikel  >  pembangunan bahagian belakang  >  msgraph-sdk-go contoh kod untuk mendapatkan pemacu pengguna gagal

msgraph-sdk-go contoh kod untuk mendapatkan pemacu pengguna gagal

王林
王林ke hadapan
2024-02-08 22:06:30751semak imbas

用于获取用户驱动器的 msgraph-sdk-go 示例代码失败

Editor PHP Xigua memperkenalkan: Apabila menggunakan kod sampel msgraph-sdk-go untuk mendapatkan pemacu pengguna, anda mungkin menghadapi kegagalan. Ini mungkin disebabkan oleh isu sambungan rangkaian, kebenaran API yang tidak mencukupi atau ralat pengekodan. Untuk menyelesaikan masalah ini, kami boleh cuba menyemak sambungan rangkaian, memastikan kebenaran API ditetapkan dengan betul dan menyemak sama ada logik kod adalah betul. Jika masalah berterusan, kami boleh menyemak dokumentasi rasmi atau meminta bantuan komuniti untuk mencari lebih banyak penyelesaian.

Kandungan soalan

msgraph-sdk-go Kod sampel untuk mendapatkan pemacu pengguna gagal dengan ralat 401 berikut. Ia menjangkakan badan permintaan mengandungi client_secret, walaupun tiada tempat dalam kod sampel tempat badan permintaan dibuat.

Kod sampel telah berjaya mengesahkan apl berdaftar saya melalui pelayar web.

Apakah yang diperlukan untuk menggunakan msgraph-sdk-go?

Ini adalah kod yang gagal:

result, err := client.me().drive().get(context.background(), nil)
if err != nil {
    fmt.printf("error getting the drive: %v\n", err)
    printodataerror(err)
}
fmt.printf("found drive : %v\n", *result.getid())

Ralatnya adalah seperti berikut:

Error getting the drive: DeviceCodeCredential authentication failed
POST https://login.microsoftonline.com/efa4b4f3-5e38-4866-9206-79c604d86e7c/oauth2/v2.0/token
--------------------------------------------------------------------------------
RESPONSE 401 Unauthorized
--------------------------------------------------------------------------------
{
  "error": "invalid_client",
  "error_description": "AADSTS7000218: The request body must contain the following parameter: 'client_assertion' or 'client_secret'.\r\nTrace ID: b6f28bb4-6bed-4dfe-a275-c0343fb91e01\r\nCorrelation ID: c06d2257-b3ab-4df3-ba58-ab271cf97508\r\nTimestamp: 2023-02-14 14:18:22Z",
  "error_codes": [
    7000218
  ],
  "timestamp": "2023-02-14 14:18:22Z",
  "trace_id": "b6f28bb4-6bed-4dfe-a275-c0343fb91e01",
  "correlation_id": "c06d2257-b3ab-4df3-ba58-ab271cf97508",
  "error_uri": "https://login.microsoftonline.com/error?code=7000218"
}

EDIT: Menambah lebih banyak butiran pada jawapan baywet

Saya telah mencipta bukti kelayakan kod pelanggan dan peranti seperti yang ditunjukkan oleh baywet tetapi saya telah menambah medan tennantid.

Di titik 5 saya memilih aplikasi mudah alih/desktop tetapi ubah hala uri ialah http://localhost. Pilihan saya untuk ubah hala uri berbeza daripada pilihannya.

Titik 6 adalah kunci untuk menjadikannya berfungsi. Sebaik sahaja saya menetapkan 选择 <code>yes 启用以下移动和桌面流程 untuk

apl saya mula berfungsi.

Saya juga mempunyai kebenaran api ini.

Penyelesaian

Andaikan anda menyediakan pelanggan dengan kelayakan kod peranti dan mendapat mesej ralat dengan kod yang serupa dengan ini

cred, err := azidentity.NewDeviceCodeCredential(&azidentity.DeviceCodeCredentialOptions{
    ClientID: "CLIENT_ID",
    UserPrompt: func(ctx context.Context, message azidentity.DeviceCodeMessage) error {
        fmt.Println(message.Message)
        return nil
    },
})

client := msgraphsdk.NewGraphServiceClientWithCredentials(cred, []string{"User.Read"})

Aplikasi berdaftar perlu dikonfigurasikan dengan betul untuk membolehkan proses penutupan peranti. Untuk melakukan ini:
  1. Pergi ke portal azure
  2. Navigasi ke pendaftaran aplikasi (direktori aktif azure, kemudian pendaftaran aplikasi).
  3. Cari pendaftaran permohonan anda dalam senarai.
  4. Klik pada tab Pengesahan
  5. https://login.microsoftonline.com/common/oauth2/nativeclientPastikan untuk memilih platform aplikasi mudah alih dan desktop dan semak
  6. url.
  7. Tetapkan "Dayakan proses mudah alih dan desktop berikut" kepada "Ya".
  8. Klik "Simpan".

Beberapa tangkapan skrin untuk membimbing anda. 🎜

Atas ialah kandungan terperinci msgraph-sdk-go contoh kod untuk mendapatkan pemacu pengguna gagal. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam