'Get access token is empty' error when running msgraph-sdk-go training sample code

WBOY
Release: 2024-02-09 08:12:30
forward
575 people have browsed it

运行 msgraph-sdk-go 训练示例代码时出现“获取访问令牌为空”错误

php editor Xiaoxin today brought you a question about the msgraph-sdk-go training sample code. During the run, you may encounter the "Get access token is empty" error. This error may cause the code to fail to execute correctly and affect the training results. In this article, we will introduce the cause and solution of this problem in detail to help you run the sample code smoothly and enjoy a better training experience.

Question content

When trying to run the msgraph-sdk-go training code from here: https://github.com/microsoftgraph/msgraph-training-go, I receiveinvalidauthenticationtokenmsg : The access token is emptywhen executing a graphics api call. I configured a Microsoft developer account with an instant sandbox for trial use. I created the application registration as described in the tutorial here and granted the application the required permissions. The code is able to get the apptoken, but the call to get users fails with the above error. Am I missing something here?

I tried the following code from the msgraph-training example

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 }
Copy after login

I have added theuser.read.allpermission to the application as described in the tutorial. Instead of getting a list of users, I get the following error:

Users.Get got Error error status code received from the API  error: 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 
Copy after login

Workaround

Well, after some trial and error, the fix that worked for me was that the version in the example didn't match the actual application I was trying. The beta msgraph application I'm using is v0.49, and the msgraphsdk tutorial uses v0.48. The go mod command initially selected the latest v0.49, I guess, after looking at the go.mod file for msgraph-traininggo.mod file to use v0.48. com/microsoftgraph/msgraph-training-go" rel="nofollow noreferrer">RepositoryEverything starts working. Hope this helps others in the future.

The above is the detailed content of 'Get access token is empty' error when running msgraph-sdk-go training sample code. For more information, please follow other related articles on the PHP Chinese website!

source:stackoverflow.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!