Heim >Backend-Entwicklung >Golang >Der msgraph-sdk-go-Beispielcode zum Abrufen des Benutzerlaufwerks schlägt fehl
PHP-Editor Xigua stellt vor: Bei der Verwendung des msgraph-sdk-go-Beispielcodes zum Abrufen des Benutzerlaufwerks können Fehler auftreten. Dies kann auf Netzwerkverbindungsprobleme, unzureichende API-Berechtigungen oder Codierungsfehler zurückzuführen sein. Um dieses Problem zu lösen, können wir versuchen, die Netzwerkverbindung zu überprüfen, sicherzustellen, dass die API-Berechtigungen richtig eingestellt sind, und prüfen, ob die Codelogik korrekt ist. Wenn das Problem weiterhin besteht, können wir die offizielle Dokumentation überprüfen oder die Community um Hilfe bitten, um weitere Lösungen zu finden.
msgraph-sdk-go Der Beispielcode zum Abrufen des Benutzerlaufwerks schlägt mit dem folgenden 401-Fehler fehl. Es wird erwartet, dass der Anfragetext „client_secret“ enthält, obwohl es im Beispielcode keine Stelle gibt, an der der Anfragetext erstellt wird.
Der Beispielcode hat meine registrierte App erfolgreich über einen Webbrowser authentifiziert.
Was wird benötigt, um msgraph-sdk-go zu verwenden?
Dies ist der Fehlercode:
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())
Der Fehler ist wie folgt:
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: Weitere Details zu Baywets Antwort hinzufügen
Ich habe die Client- und Gerätecode-Anmeldeinformationen erstellt, wie von baywet gezeigt, aber ich habe das Tennantid-Feld hinzugefügt.
In Punkt 5 habe ich die Mobil-/Desktop-App ausgewählt, aber die Weiterleitungs-URI lautet http://localhost
. Meine Optionen für die Weiterleitungs-URI unterscheiden sich von seinen.
Punkt 6 ist der Schlüssel zum Erfolg. Sobald ich das 选择 <code>yes
启用以下移动和桌面流程 für
Ich habe auch diese API-Berechtigungen. ProblemumgehungAngenommen, Sie richten den Client mit Gerätecode-Anmeldeinformationen ein und erhalten eine Fehlermeldung mit einem ähnlichen Code
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"})Die registrierte Anwendung muss ordnungsgemäß konfiguriert sein, um das Herunterfahren des Geräts zu ermöglichen. Um dies zu tun:
https://login.microsoftonline.com/common/oauth2/nativeclient
Stellen Sie sicher, dass Sie mobile und Desktop-App-Plattformen auswählen und Ein paar Screenshots zur Orientierung. 🎜
Das obige ist der detaillierte Inhalt vonDer msgraph-sdk-go-Beispielcode zum Abrufen des Benutzerlaufwerks schlägt fehl. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!