Microsoft wyłączył uwierzytelnienie za pomocą hasła więc automatycznie jest problem z imap_open ponieważ nie obsługuje on autentykacji za pomocą tokena. Mam poniższy skrypt za pomocą, którego jestem wstanie wyciągnąć token po zalogowaniu i to działa, natomiast utknąłem i nie mam pomysłu w jaki sposób wykorzystać ten token aby połączyć się ze skrzynką za pomocą imapa i wyciągać e-maile. Czy ktoś coś podpowie ?
<?php
$id_application = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
$secret = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
$login_url ="https://login.microsoftonline.com/XXXXXXXXXXXXXXXXXXXXXXXXXXXXX/oauth2/v2.0/authorize";
if(isset($_SESSION['message'])) {
echo '<a href="?action=logout">Log Out</a>'; }
else
{
echo '<a href="?action=login">Log In</a>'; }
if($_GET['action'] == 'login')
{
$parametrs = array ('client_id' => $id_application,
'redirect_uri' =>'https://xxxxxxxxxxxxxxxxxxx',
'response_type' =>'token',
'scope' =>'https://graph.microsoft.com/User.Read',
'state' => $_SESSION['state']);
header('Location: '.$login_url.'?'.http_build_query
($parametrs));
}
{
$curl = curl_init ();
curl_setopt
($curl, CURLOPT_HTTPHEADER
, array ('Authorization: Bearer '.$_GET['access_token'],'Conent-type: application/json'));
curl_setopt ($curl, CURLOPT_URL, "https://graph.microsoft.com/v1.0/me/");
curl_setopt ($curl, CURLOPT_RETURNTRANSFER, 1);
$decode = json_decode (curl_exec ($curl), 1);
{
$_SESSION['message'] = 1;
}