2017-11-30 16 views
0

私はOutlookのMicrosoftメールアカウントを持っています。私は正常にMicrosoft 365 APIを使用して、ログインユーザーを認証しています。私はMSAロギングユーザーの詳細を取得することができました。Microsoft Graph 365 Rest APIを使用してユーザープロファイルを更新する方法

ここでは、MSAのドキュメントを使用してログインユーザーの情報を更新します。 https://developer.microsoft.com/en-us/graph/docs/api-reference/v1.0/api/user_update Appsアプリケーション側のすべての権限を設定しました。

私は、更新するパラメータは、jobTitle、mobilePhone、officeLocation

を含んで、私は以下のコードを実行し、以下の

{ "error": { "code": "BadRequest", "message": "Request type is not supported.", "innerError": { "request-id": "9659c539-d7c6-433f-9e9a-9d78a25570b3", "date": "2017-11-30T11:26:57" } } } 

コード

<?php 
session_start(); 


echo $acc= $_SESSION['access_token']; 


echo '<br>cow<br>'; 


echo $_SESSION['preferred_username']; 

echo $_SESSION['given_name']; 


$data_string = array("jobTitle" => 'eLECTRICAL eNGINEER', "mobilePhone" => "15087561" , "officeLocation" => "Montario"); 
$data = json_encode($data_string); 
//$data = $data_string; 
$curl = curl_init(); 

curl_setopt_array($curl, array( 
CURLOPT_URL => "https://graph.microsoft.com/v1.0/users/[email protected]", 
CURLOPT_RETURNTRANSFER => true, 
CURLOPT_ENCODING => "", 
CURLOPT_MAXREDIRS => 10, 
CURLOPT_TIMEOUT => 30, 
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, 
CURLOPT_CUSTOMREQUEST => "UPDATE", 
CURLOPT_POSTFIELDS => "$data", 
CURLOPT_HTTPHEADER => array( 
"accept: application/json", 
"authorization: Bearer $acc", 
"content-type: application/json; charset=utf-8" 
), 
)); 

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

curl_close($curl); 



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

//$res = $json->{'items'}; 




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

でエラーが生じています問題がCURLリクエストのURLかどうかわかりません。助けてください

答えて

0

これらのプロパティは、個人用Microsoftアカウント(MSA)userでは利用できません。Azure Active Directory userでのみ利用できます。

いくつかのエンドポイント、メソッド、プロパティは、基礎となるサービスが適用されないため、Microsoftアカウントには適用されません。たとえば、PlannerはOffice 365ビジネスアカウントでのみ使用できます。そのため、MSAを使用する場合、そのエンドポイントへの呼び出しはサポートされません。

関連する問題