2017-06-22 22 views
0

私は、Microsoft Graph APIを使用してフォルダを作成しようとしています。 Microsoftグラフエクスプローラでは、すべてが正常に動作しますが、私のPHPコードは、エラーを返す:400 BadRequest、JSON要求ペイロードを読み取ることができません:Microsoft Graph APIを使用してフォルダを作成

$name = 'newFolder'; $access_token = '123..'; 
$link = 'https://graph.microsoft.com/v1.0/me/drive/root/children'; 

$data = array(
    "name" => $name, 
    "folder" => array() 
); 

$curl=curl_init(); 
curl_setopt($curl,CURLOPT_RETURNTRANSFER,true); 
curl_setopt($curl,CURLOPT_URL,$link); 
curl_setopt($curl,CURLOPT_CUSTOMREQUEST,'POST'); 
curl_setopt($curl,CURLOPT_HEADER,false); 
curl_setopt($curl,CURLOPT_HTTPHEADER, array('Authorization: Bearer '.$access_token, 'Content-Type: application/json')); 
curl_setopt($curl,CURLOPT_POSTFIELDS, $data); 
curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,0); 
curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,0); 

$out = curl_exec($curl); 
$codeCurl = curl_getinfo($curl,CURLINFO_HTTP_CODE); 
curl_close($curl); 

これは「アウト$」の応答があります。 Content-Typeヘッダが設定され、ペイロードの有効なJSONフォーマットがであることを確認してください。私は理解できません、何が間違っていますか? jsonデータは正しいです、ヘッダーも。

答えて

0

正しい方法では、正しい形式でデータを配置するために "json_encode()"を使用しています。そして、フォルダの正しい形式は

Create folder on OneDrive with APIに感謝)$folderParameters = ["name" => $name, "folder" => ["childCount" => '0']];だった右のコードは次のとおりです。

$link = 'https://graph.microsoft.com/v1.0/me/drive/root/children'; 

$data = [ 
    "name" => $name, 
    "folder" => ["childCount" => '0'] 
]; 

$headers = [ 
    'Authorization: Bearer '.$access_token, 
    'Content-Type: application/json' 
]; 

$curl=curl_init(); 
curl_setopt($curl,CURLOPT_RETURNTRANSFER,true); 
curl_setopt($curl,CURLOPT_URL,$link); 
curl_setopt($curl,CURLOPT_CUSTOMREQUEST,'POST'); 
curl_setopt($curl,CURLOPT_HEADER,false); 
curl_setopt($curl,CURLOPT_HTTPHEADER, $headers); 
curl_setopt($curl,CURLOPT_POSTFIELDS, json_encode($data)); 
curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,0); 
curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,0); 

$out = curl_exec($curl); 
$codeCurl = curl_getinfo($curl,CURLINFO_HTTP_CODE); 
curl_close($curl); 
関連する問題