Maison > Questions et réponses > le corps du texte
P粉4267805152023-09-06 00:58:31
Utilisez OAuth 2.0授权
对用户进行身份验证并获取访问令牌。并使用它调用 Microsoft Graph API
pour récupérer l'e-mail de l'utilisateur.
Pour votre question, la page de connexion peut apparaître lorsque vous n'êtes pas connecté. Pour résoudre ce problème, vous devez utiliser OAuth 2.0 客户端凭据
au lieu du code d'autorisation. p>
Exemple de code pour obtenir un jeton d'accès à l'aide des informations d'identification du client.
$tenantId = 'your-tenant-id';
$client_id = 'your-client-id';
$client_secret = 'your-client-secret';
$resource = 'https://graph.microsoft.com';
$tokenEndpoint = 'https://login.microsoftonline.com/' . $tenantId . '/oauth2/token';
$data = array(
'grant_type' => 'client_credentials',
'client_id' => $client_id,
'client_secret' => $client_secret,
'resource' => $resource
);
$options = array(
'http' => array(
'header' => "Content-type: application/x-www-form-urlencoded\r\n",
'method' => 'POST',
'content' => http_build_query($data)
)
);
$context = stream_context_create($options);
$result = file_get_contents($tokenEndpoint, false, $context);
$token = json_decode($result)->access_token;
Après avoir obtenu le jeton d'accès, vous pouvez l'utiliser pour appeler Microsoft Graph API
et récupérer l'e-mail de l'utilisateur.
Exemple de code pour récupérer l'e-mail de l'utilisateur.
php $graphApiEndpoint = 'https://graph.microsoft.com/v1.0/me/messages'; $options = array( 'http' => array( 'header' => "Authorization: Bearer $token\r\n" . "Content-type: application/json\r\n", 'method' => 'GET' ) ); $context = stream_context_create($options); $result = file_get_contents($graphApiEndpoint, false, $context); $messages = json_decode($result)->value;
Voir MSDoc1 et MSDoc2 pour plus de détails.