MS OAuth2.0 示範
"; if (isset ($_SESSION['msatg'])){ echo "已驗證".$_SESSION["uname"]." </h2><br> ”; echo '<p><a href="?action=logout">註銷</a></p>'; } //如果會話結束 else echo '
您可以登入與 Microsoft</p></h2>'; if ($_GET['操作'] == '登入'){ $params = array ('client_id' => $appid, 'redirect_uri' => 'https://xxx.co/projects/test.php', 'response_type' => '令牌', '範圍' => 'https://graph.microsoft.com/User.Read', '狀態' => $_SESSION['狀態']); header('位置:'.$login_url.'?'.http_build_query($params)); } 迴聲' <腳本> url = window.location.href; i=url.indexOf(“#”); 如果(我> 0){ url=url.replace("#","?"); window.location.href=url;} </腳本> '; if (array_key_exists ('access_token', $_GET)) { $_SESSION['t'] = $_GET['access_token']; $t = $_SESSION['t']; $ch=curl_init(); curl_setopt($ch, CURLOPT_HTTPHEADER, array('授權:承載'.$t, '內容類型:application/json')); curl_setopt($ch,CURLOPT_URL,「https://graph.microsoft.com/v1.0/me/」); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $rez = json_decode(curl_exec($ch), 1); if (array_key_exists ('錯誤', $rez)){ var_dump($rez['錯誤']); 死(); } 別的 { $_SESSION['msatg'] = 1; //授權並驗證 $_SESSION['uname'] = $rez['displayName']; $_SESSION['id'] = $rez['id']; } 捲曲關閉($ch); header('位置:https://xxxx.co/projects/test.php'); } if ($_GET['操作'] == '註銷'){ 取消設定 ($_SESSION['msatg']); header('位置:https://xxxx.co/projects/test.php'); }</pre> <p>當我們打開此程式碼時,它會要求登入。我們不希望這樣。將使用 php 直接提取電子郵件</p>
使用
OAuth 2.0授權
對使用者進行身份驗證並取得存取令牌。並使用它來呼叫Microsoft Graph API
來檢索使用者的電子郵件。對於您的問題,在您未登入時可能會出現登入頁面。要解決此問題,您需要使用
OAuth 2.0 用戶端憑證
而不是授權程式碼。 p>使用客戶端憑證取得存取令牌的範例程式碼。
取得存取權杖後,您可以使用它來呼叫
Microsoft Graph API
並檢索使用者的電子郵件。檢索使用者電子郵件的範例程式碼。
有關詳細信息,請參閱 MSDoc1 和 MSDoc2。