Editor PHP Xiaoxin hari ini membawakan anda soalan tentang kod contoh latihan msgraph-sdk-go. Semasa larian, anda mungkin menghadapi ralat "Dapatkan token akses kosong". Ralat ini boleh menyebabkan kod gagal dilaksanakan dengan betul dan menjejaskan keputusan latihan. Dalam artikel ini, kami akan memperkenalkan punca dan penyelesaian masalah ini secara terperinci untuk membantu anda menjalankan kod sampel dengan lancar dan menikmati pengalaman latihan yang lebih baik.
Apabila cuba menjalankan kod latihan msgraph-sdk-go dari sini: https://github.com/microsoftgraph/msgraph-training-go, saya menerimainvalidauthenticationtokenmsg:执行图形 api 调用时访问令牌为空
. Saya mengkonfigurasi akaun pembangun Microsoft dengan kotak pasir segera untuk kegunaan percubaan. Saya mencipta pendaftaran aplikasi seperti yang diterangkan dalam tutorial di sini dan memberikan permohonan kebenaran yang diperlukan. Kod ini boleh mendapatkan apptoken, tetapi panggilan untuk mendapatkan pengguna gagal dengan ralat di atas. Adakah saya kehilangan sesuatu di sini?
Saya mencuba kod berikut daripada contoh msgraph-training
func (g *graphhelper) initializegraphforappauth() error { clientid := os.getenv("client_id") tenantid := os.getenv("tenant_id") clientsecret := os.getenv("client_secret") credential, err := azidentity.newclientsecretcredential(tenantid, clientid, clientsecret, nil) if err != nil { return err } g.clientsecretcredential = credential // create an auth provider using the credential authprovider, err := auth.newazureidentityauthenticationproviderwithscopes(g.clientsecretcredential, []string{ "https://graph.microsoft.com/.default", }) if err != nil { return err } // create a request adapter using the auth provider adapter, err := msgraphsdk.newgraphrequestadapter(authprovider) if err != nil { return err } // create a graph client using request adapter client := msgraphsdk.newgraphserviceclient(adapter) g.appclient = client return nil } // this part works, and i get the apptoken with required scope, once decoded. func (g *graphhelper) getapptoken() (*string, error) { token, err := g.clientsecretcredential.gettoken(context.background(), policy.tokenrequestoptions{ scopes: []string{ "https://graph.microsoft.com/.default", }, }) if err != nil { return nil, err } fmt.println("expires on : ", token.expireson) return &token.token, nil } // the getusers function errors out func (g *graphhelper) getusers() (models.usercollectionresponseable, error) { var topvalue int32 = 25 query := users.usersrequestbuildergetqueryparameters{ // only request specific properties select: []string{"displayname", "id", "mail"}, // get at most 25 results top: &topvalue, // sort by display name orderby: []string{"displayname"}, } resp, err := g.appclient.users(). get(context.background(), &users.usersrequestbuildergetrequestconfiguration{ queryparameters: &query, }) if err != nil { fmt.println("users.get got error", err.error(), resp) printodataerror(err) } resp, err = g.appclient.users(). get(context.background(), nil) if err != nil { fmt.println("users.get got error with nil", err.error(), resp) } return resp, err }
Saya telah menambahkanuser.read.all
kebenaran dalam apl seperti yang diterangkan dalam tutorial. Daripada mendapatkan senarai pengguna, saya mendapat ralat berikut:
Users.Get got Error error status code received from the APIerror: error status code received from the API code: InvalidAuthenticationTokenmsg: Access token is empty.Users.Get got Error with nil error status code received from the API
Nah, selepas beberapa percubaan dan kesilapan, pembetulan yang berkesan untuk saya ialah versi dalam contoh tidak sepadan dengan aplikasi sebenar yang saya cuba. Aplikasi beta msgraph yang saya gunakan ialah v0.49, dan tutorial msgraphsdk menggunakan v0.48. Arahan mod go pada mulanya memilih v0.49 terkini, saya rasa, selepas melihat fail msgraph-traininggo.mod untuk menggunakan v0.48. com/microsoftgraph/msgraph-training-go" rel="nofollow noreferrer">RepositoriSemuanya mula berfungsi. Semoga ini membantu orang lain pada masa akan datang.
Atas ialah kandungan terperinci Ralat 'Dapatkan token akses kosong' semasa menjalankan kod contoh latihan msgraph-sdk-go. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!