2017-11-27 15 views
0

Microsoft Graphで作業しています。ユーザーがサインインが、私は以下のコードを経由して、すべてのユーザーのデータを読み取ることができていた場合:Microsoft GraphとPHPを使用してメールとプロフィール写真を表示

<?php 
session_start(); 
echo $acc= $_SESSION['access_token']; 

echo '<br>display<br>'; 

echo $_SESSION['preferred_username']; 
echo $_SESSION['given_name']; 

$curl = curl_init();  
curl_setopt_array($curl, array( 

CURLOPT_URL => "https://graph.microsoft.com/v1.0/me",  
CURLOPT_RETURNTRANSFER => true, 
CURLOPT_ENCODING => "", 
CURLOPT_MAXREDIRS => 10, 
CURLOPT_TIMEOUT => 30, 
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, 
//CURLOPT_CUSTOMREQUEST => "GET", 
//CURLOPT_POSTFIELDS => "$data", 
CURLOPT_HTTPHEADER => array( 
"authorization: Bearer $acc" 
), 
)); 

$response = curl_exec($curl); 
$err = curl_error($curl); 

curl_close($curl); 

print_r($response); 
$json = json_decode($response); 

if ($err) { 
echo "cURL Error #:" . $err; 
} else { 
//echo $response; 
} 

?> 

今私は、ログインユーザがそれぞれhttps://graph.microsoft.com/v1.0/me/photo/https://graph.microsoft.com/v1.0/me/messagesにAPIの接続リンクを変更することで、写真やメールをプロファイルにアクセスしたいです。ログインユーザーのプロフィール写真を取得するために、私はこのエラーを

を取得しています:

{ 
    "error": { 
     "code": "GetUserPhoto", 
     "message": "The operation is not supported.", 
     "innerError": { 
      "request-id": "78f2f57f-e256-459e-b515-1adb17cf3b2d", 
      "date": "2017-11-27T03:22:09" 
     } 
    } 
} 

ユーザーのメッセージを取得する場合、私はこのエラーを取得しています:

{ 
    "error": { 
     "code": "ErrorAccessDenied", 
     "message": "Access is denied. Check credentials and try again.", 
     "innerError": { 
      "request-id": "d5baf587-d08f-47c2-8c2d-160536d36eb6", 
      "date": "2017-11-27T04:16:15" 
     } 
    } 
} 

何が考えられます問題。ありがとう

+0

これはどの種類のアカウントですか(AAD/MSA)?利用可能なメールボックスがありますか(つまり、ウェブ用のOutlook経由でアクセスできますか?) –

+0

MSA(Microsoft Account)の電子メールはすでにOutlookに存在していると思います。たとえば、[email protected] – briandenny

答えて

0

現在のバージョンのMicrosoft Graphで個人用アカウントからプロファイル写真を取得することはできません。 Per documentation

Note This operation in version 1.0 supports only a user's work or school mailboxes and not personal mailboxes.

+0

Marc LaFleurでは、Microsoft 365 APIを活用したアプリケーションの構築以来、MSA Outlookメールアカウントを作成するにはどうすればいいですか?ユーザー作品または個人でない学校のいずれか – briandenny

+0

「Microsoft 365 API」はありません。また、仕事/学校向けの「MSA Outlookメール」もありません。 Microsoftアカウント(別名MSA、Hotmail、Xbox Live、またはOutlook.comアカウント)は、消費者/個人アカウントです。これらは、仕事/学校アカウントのAzure ADアカウントとは異なります。 –