Here are the methods I tried using the Microsoft Graph API and their respective outcomes:
方法一:
- 单点登录(SSO)后,我们获得访问令牌.
- 此访问令牌用作Graph API集成的承载令牌.
public function redirectToMicrosoft(){
return Socialize::driver('graph')->scopes(['offline_access'])->redirect();
}
public function handleMicrosoftCallback(){
$user = Socialize::driver('graph')->user();
return $user->access_token;
}
- Resulted in the following error:
- 网址:https://graph.microsoft.com/v1.0/me/onenote/pages
- 答复:
- 错误代码:40001
- 错误消息:"请求不包含有效的身份验证令牌."
- 网址:https://graph.microsoft.com/v1.0/users/gowrishankari97@outlook.com/events
- 答复:
- 错误代码:错误访问被拒绝
- 错误消息:"访问被拒绝.请判断凭据,然后重试."
方法二:
- 根据租户ID和指定参数获取访问令牌.
- 使用获得的访问令牌.
public function getAccessToken()
{
$tenantId = env('MICROSOFT_TENANT_ID');
$clientSecret = env('MICROSOFT_CLIENT_SECRET');
$clientId = env('MICROSOFT_CLIENT_ID');
$input = [
'grant_type' => 'client_credentials',
'client_id' => $clientId,
'scope' =>"https://graph.microsoft.com/.default",
'client_secret' => $clientSecret,
];
$client = new Client();
$response = $client->request('POST', "https://login.microsoftonline.com/$tenantId/oauth2/v2.0/token", ['form_params' => $input]);
$statusCode = $response->getStatusCode();
$responseBody = json_decode($response->getBody(), true);
$this->accessToken = $responseBody['access_token'];
return $responseBody;
}
- Resulted in the following errors:
- 网址:https://graph.microsoft.com/v1.0/me/events
- 响应:
- 错误代码:错误请求
- 错误消息:"/Me请求仅对委派身份验证流有效."
- 响应:
- 网址:https://graph.microsoft.com/v1.0/users/gowrishankari97@outlook.com/events
- 答复:
- 错误代码:OrganizationFromTenantGuidNotFound
- 错误消息:"租户GUID‘{Tenant_ID}’的租户不存在."
- 答复:
- 网址:https://graph.microsoft.com/v1.0/me/events
最新情况:
Kindly find the permission below,
try 使用Azure AD配置的邮箱登录时,这涉及注册邮箱地址以获取客户端和密码.我得到了代码,访问令牌API工作得很好.
try 使用不同的Outlook邮件登录时,出现以下错误.请参考截图,
CODE个 0.AS4AgI6YLYeIu0eXbgo3fHk6PszspcPofddJs-W7b5ajEO-5AC8.AgABAAIAAAAmoFfGtYxvRrNriQdPKIZ-AgDs_wUA9P-kBJSNPkGJJsNJgB510cZ69mO3JTSYLh89i4PpBhv1Y8L0nk51BFcTUh7bEe2i5dC24W1eeEqsOCuGKJcUYbmfdHCKHkpnaUBAFoHsIGhyydpHwMvezF4pAnL8_-OxgJeM-xPaj3WFxqZfEvwP6R4TFxQ4IP5hovS1erTxlMCS63dA9hdL7jbkpDHjrp3wgqs01zRt_q5RAPCH4KtRGtirnMnll-3PSEkcLixKUQkeC261Z_0JsK5aGRidAv0IFNs_nw5cPtowTEuEiv99EJZQLJbt7qLOhz0DIPBBeBhpJl2bi6OsdOV4UZ59eQafOEanxA-5_pC6gy3H3nc9kiVfPddlneBXKGbFbaoXHyl9hi_i7bzNcJDubNteM2TQETYy7VgnoRpNEbh_eOZNV4T1rVtr8h5F4fxg9MaWkmQog8s9dxtDwY4MCYq9UBb1tVTeOlm38w3oyQWR-3ZCbD8wV4IZV3TEzrqJfhURm8E_cgcgTLdzOm-8uK9f-E0NAC4aodqXf_V3d8wLtR6QJi-WNOKlB-8THR-WNuMZvBcZiL38h_zToPbgwnL0fSRfsuoU57kwE8t30HpcDzRq2PilxgdDjoGolStRNEv-RDrgTS-66EewjHevBwbU_5A0nSfNzjhksl5NQfuEdnoRSZ3QTH4jwLgzIZ3aSkwphkoRtDJRa_Ri1U8PdAzolRl2SlJIYp7sqvIfpPL9SSRgEA6ftusb8seE9gEcGXKvvRFEQza4KgrsC9NHNMQunJFlQxbb5Y1SpdgRWC9BsK7oIGgegj5F4CKoBgKqlaOmis2I_QvZxVil5KSq4zft&state=12345&session_state=9c29347d-1351-48c8-90dc-c1ab380a6221