Rumah > pembangunan bahagian belakang > Golang > 'Penyewa untuk penyewa GUID X tidak wujud' untuk akaun e-mel sendiri (saya satu-satunya ahli)

'Penyewa untuk penyewa GUID X tidak wujud' untuk akaun e-mel sendiri (saya satu-satunya ahli)

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Lepaskan: 2024-02-13 16:20:09
ke hadapan
1583 orang telah melayarinya

“租户 GUID X 的租户不存在”,对于自己的电子邮件帐户(我是唯一的成员)

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.

Kandungan soalan

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
         }
     }
    Salin selepas log masuk
  • 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
     }
    Salin selepas log masuk
  • 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
     }
    Salin selepas log masuk
  • 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
         }
    Salin selepas log masuk

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"
        }
    }
}
Salin selepas log masuk

Id pada ralat 0a6ac917-332a-4f47-881e-0b35fb1b2ab5 ialah id penyewa 0a6ac917-332a-4f47-881e-0b35fb1b2ab5是tenand id

解决方法

要阅读个人 outlook 帐户的邮件,需要切换到委托流程(例如交互流程或生成访问令牌的授权码流程)并调用 /me/ messages

Penyelesaian

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.readmail.readwrite

Sekarang tambahkan

perwakilan

jenis mel.baca atau /me/messagesmel.tulis baca mengikut keperluan anda

Kebenaran:

Untuk menjana < /strong>token akses

​​menggunakan aliran interaksi, anda boleh merujuk kepada contoh kod go ini dan kemudian menggunakannya untuk memanggil

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
}
Salin selepas log masuk
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
Salin selepas log masuk
Respon:

🎜🎜Rujukan: 🎜🎜 🎜🎜Microsoft Authentication-library-for-go/apps/public/example_test.go terletak di utama · azuread/microsoft-authentication-library-for-go · github🎜🎜

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!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan