Rumah >pembangunan bahagian belakang >Golang >'Penyewa untuk penyewa GUID X tidak wujud' untuk akaun e-mel sendiri (saya satu-satunya ahli)
editor php Yuzai mungkin menghadapi mesej ralat "Penyewa dengan penyewa GUID X tidak wujud" semasa menyelesaikan masalah akaun e-mel, terutamanya apabila anda seorang ahli. Mesej ralat ini mungkin menghalang anda daripada log masuk atau mengakses akaun e-mel anda. Untuk isu ini, kami mempunyai beberapa penyelesaian yang anda boleh cuba memulihkan akses dan penggunaan biasa akaun e-mel anda. Di bawah, kami akan menerangkan beberapa kemungkinan penyelesaian dan langkah yang kami harap dapat membantu anda menyelesaikan isu anda.
Saya ingin membaca e-mel untuk akaun peribadi saya tetapi saya mendapat mesej "Penyewa untuk penyewa guid x tidak wujud".
Saya mencipta aplikasi menggunakan penyewa tunggal di https://entra.microsoft.com/
Kemudian saya memberi kebenaran untuk menghantar e-mel
Kemudian saya mencipta kunci pelanggan
Kemudian saya menggunakan kod ini untuk mendapatkan token:
import(""github.com/azuread/microsoft-authentication-library-for-go/apps/confidential") cred, err := confidential.newcredfromsecret("{secret value}") if err != nil { log.println(err) return } confidentialclient, err := confidential.new("https://login.microsoftonline.com/{tenant id}", "{client id}", cred) if err != nil { log.println(err) return } scopes := []string{"https://graph.microsoft.com/.default"} result, err := confidentialclient.acquiretokensilent(context.todo(), scopes) if err != nil { result, err = confidentialclient.acquiretokenbycredential(context.todo(), scopes) if err != nil { log.println(err) return } }
Saya berjaya mendapatkan token menggunakan kod ini
{ "account": { "additionalfields": null }, "idtoken": { "rawtoken": "", "additionalfields": null }, "accesstoken": "{token}", "expireson": "2023-12-13t14:57:09.4905758-05:00", "grantedscopes": [ "https://graph.microsoft.com/.default" ], "declinedscopes": null }
Kemudian saya mendapat id pengguna (saya satu-satunya pengguna):
req, err := http.newrequest("get", "https://graph.microsoft.com/v1.0/users", nil) if err != nil { log.println(err) return } req.header.add("authorization", "{token}") client := http.client{} resp, err := client.do(req) if err != nil { log.println(err) return } body, err := io.readall(resp.body) if err != nil { log.println(err) return }
Tetapi apabila saya cuba mendapatkan e-mel:
req, err := http.newrequest("get", "https://graph.microsoft.com/v1.0/users/{user_id}/messages", nil) if err != nil { log.println(err) return } req.header.add("authorization", "{token}") client := http.client{} resp, err := client.do(req) if err != nil { log.println(err) return } body, err := io.readall(resp.body) if err != nil { log.println(err) return }
Saya mendapat:
{ "error": { "code": "OrganizationFromTenantGuidNotFound", "message": "The tenant for tenant guid '0a6ac917-332a-4f47-881e-0b35fb1b2ab5' does not exist.", "innerError": { "oAuthEventOperationId": "c096c5c9-e743-4daa-9a97-d14d915e9842", "oAuthEventcV": "N0nHeUJm9gwnrFZefuEA4w.1.1", "errorUrl": "https://aka.ms/autherrors#error-InvalidTenant", "requestId": "c0272999-9743-44ee-98b5-947acc52e7d8", "date": "2023-12-13T19:11:22" } } }
Id pada ralat 0a6ac917-332a-4f47-881e-0b35fb1b2ab5
ialah id penyewa 0a6ac917-332a-4f47-881e-0b35fb1b2ab5
是tenand id
要阅读个人 outlook 帐户的邮件,需要切换到委托流程(例如交互流程或生成访问令牌的授权码流程)并调用 /me/ messages
Untuk membaca mel daripada melihat peribadi” > anda perlu bertukar kepada akaun
proses (cth. proses interaksi atau proses kod kebenaran yang menjana token akses) dan memanggil titik akhir/me/message
. Daftar
Multi-penyewa apl dengan jenis akaun "Akaun dalam mana-mana direktori organisasi (mana-mana penyewa microsoft entra id - multitenant) dan akaun microsoft peribadi (cth. skype, xbox)
":
Jika anda menggunakan aliran interaksi untuk menjana token, pastikan anda mendayakan pilihan Klien Awam: mail.read
或mail.readwrite
Sekarang tambahkan
perwakilan jenis /me/messages
titik akhir:
package public_test
import (
"context"
"github.com/azuread/microsoft-authentication-library-for-go/apps/public"
)
func example() {
client, err := public.new("client_id", public.withauthority("https://login.microsoftonline.com/common"))
if err != nil {
}
var result public.authresult
scopes := []string{"https://graph.microsoft.com/.default"}
accounts, err := client.accounts(context.todo())
if err != nil {
// todo: handle error
}
if len(accounts) > 0 {
result, err = client.acquiretokensilent(context.todo(), scopes, public.withsilentaccount(accounts[0]))
}
if err != nil || len(accounts) == 0 {
result, err = client.acquiretokeninteractive(context.todo(), scopes)
if err != nil {
}
}
_ = result.account
_ = result.accesstoken
}
Anda juga boleh log masuk ke
penjelajah graf
menggunakan akaun itu dan jalankan pertanyaan berikut untuk mendapatkan e-mel:
GET https://graph.microsoft.com/v1.0/me/messages
Atas ialah kandungan terperinci 'Penyewa untuk penyewa GUID X tidak wujud' untuk akaun e-mel sendiri (saya satu-satunya ahli). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!