찾다

 >  Q&A  >  본문

Azure 인증 및 PHP 인코딩을 사용하여 이메일을 긁는 방법

<p>이메일 ID에서 받은편지함 이메일을 가져오기 위해 PHP로 작성된 애플리케이션이 있는데 잘 작동합니다. 기본 인증 애플리케이션입니다. 최근에 기본 인증이 중단되었기 때문에 우리는 새로운 인증을 받기 위해 Azure에 계정을 만들었고 이를 기반으로 이메일을 가져오고 싶습니다. </p> <p>애플리케이션 ID와 비밀번호 ID를 사용하여 코드를 생성했습니다. 페이지를 열면 로그인 페이지로 리디렉션되는데 이것이 문제입니다. 자동으로 로그인하고 이메일을 받으려면 이 정보가 필요합니다. 이는 cron 프로세스이므로 로그인을 입력해야 할 때마다 이메일을 가져오는 것은 해결책이 아닙니다. </p> <p>https://xxxx.co/projects/test.php?action=login 이 링크를 열면 로그인을 요청합니다. 애플리케이션 ID, 비밀 ID, 테넌트 ID와 같은 모든 데이터를 이미 배치했기 때문에 이를 원하지 않습니다. </p> <p>이미 Microsoft에 로그인되어 있는 경우 로그인을 요청하지 않고 이메일을 통해 페이지를 가져옵니다. 하지만 시크릿 모드로 열면 로그인을 요청합니다.我们如何删除它并直接获取电子邮件</p> <pre class="brush:php;toolbar:false;"><?php $appid = "xxxxx";; $tennantid = "xxxxx";; $secret = "xxxxxx";; $login_url ="https://login.microsoftonline.com/".$tennantid."/oauth2/v2.0/authorize" 세션_시작(); $_SESSION['state']=session_id(); echo "<h1>MS OAuth2.0 데모</h1><br>" if (isset ($_SESSION['msatg'])){ echo "

인증됨 ".$_SESSION["uname"]." </h2><br> "; echo '<p><a href="?action=logout">로그아웃</a></p>'; } //세션이면 종료 else echo '<h2><p><a href="?action=login">로그인</a>할 수 있습니다. Microsoft</p></h2>'; if ($_GET['action'] == '로그인'){ $params = 배열('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("#"); if(i>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_setopt($ch, CURLOPT_HTTPHEADER, array('권한 부여: Bearer'.$t, '콘텐츠 유형: 애플리케이션/json')); cur_setopt($ch, CURLOPT_URL, "https://graph.microsoft.com/v1.0/me/"); 컬_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $rez = json_decode(curl_exec($ch), 1); if (array_key_exists ('error', $rez)){ var_dump($rez['error']); 주사위(); } 또 다른 { $_SESSION['msatg'] = 1; //인증 및 확인 $_SESSION['uname'] = $rez["displayName"]; $_SESSION['id'] = $rez["id"]; } 컬_닫기($ch); 헤더('위치: https://xxxx.co/projects/test.php'); } if ($_GET['action'] == '로그아웃'){ 설정 해제($_SESSION['msatg']); 헤더('위치: https://xxxx.co/projects/test.php'); }</pre> <p>저희는 php 直接抓取电子邮件</p>

P粉786800174P粉786800174456일 전649

모든 응답(1)나는 대답할 것이다

  • P粉426780515

    P粉4267805152023-09-06 00:58:31

    사용자의 이메일을 검색하려면 OAuth 2.0授权对用户进行身份验证并获取访问令牌。并使用它调用 Microsoft Graph API를 사용하세요.

    문의하신 내용은 로그인하지 않은 상태에서도 로그인 페이지가 나타날 수 있습니다. 이 문제를 해결하려면 인증 코드 대신 OAuth 2.0 客户端凭据를 사용해야 합니다.

    클라이언트 자격 증명을 사용하여 액세스 토큰을 얻는 샘플 코드입니다.

    으아악

    액세스 토큰을 받은 후 이를 사용하여 Microsoft Graph API 전화를 걸고 사용자의 이메일을 검색할 수 있습니다.

    사용자 이메일을 검색하기 위한 샘플 코드.

    으아악

    자세한 내용은 MSDoc1 MSDoc2을 참조하세요.

    회신하다
    0
  • 취소회신하다