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)

WBOY
Lepaskan: 2024-02-13 16:20:09
ke hadapan
1281 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!

sumber:stackoverflow.com
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