php エディターの Xiaoxin は本日、msgraph-sdk-go トレーニング サンプル コードに関する質問をしました。実行中に、「アクセス トークンの取得が空です」エラーが発生する場合があります。このエラーにより、コードが正しく実行されず、トレーニング結果に影響を与える可能性があります。この記事では、サンプル コードをスムーズに実行し、より良いトレーニング エクスペリエンスを楽しむために、この問題の原因と解決策を詳しく紹介します。
ここから msgraph-sdk-go トレーニング コードを実行しようとすると: https://github.com/microsoftgraph/msgraph-training-go というメッセージが表示されます。 validauthenticationtokenmsg : グラフィックス API 呼び出しの実行時のアクセス トークンは空です。
試用のためにインスタント サンドボックスを使用して Microsoft 開発者アカウントを構成しました。
ここのチュートリアルで説明されているようにアプリケーション登録を作成し、アプリケーションに必要な権限を付与しました。
コードは apptoken を取得できますが、ユーザーを取得する呼び出しは上記のエラーで失敗します。ここで何かが足りないでしょうか?
msgraph-training の例から次のコードを試しました
チュートリアルの説明に従って、アプリケーションに
user.read.all 権限を追加しました。
ユーザーのリストを取得する代わりに、次のエラーが表示されます:
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">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
}</pre><div class="contentsignin">ログイン後にコピー</div></div>
ファイル v0.48 を使用します。 com/microsoftgraph/msgraph-training-go" rel="nofollow noreferrer">リポジトリ すべてが動作し始めます。 これが将来他の人にも役立つことを願っています。
以上がmsgraph-sdk-go トレーニング サンプル コードを実行すると「アクセス トークンの取得が空です」エラーが発生するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。