curlでGoogle Driveにファイルをアップロードできない
phpのcurlを使ってGoogle Driveにファイルをアップロードするスクリプトを、公式ドキュメントを参考に作っているのですがPOSTデータの改行コードをいじくるなど何度も試したのですがcurl_execの返り値がfalseになってしまいます。どこがおかしいかご指摘頂けると助かります。
$token = "xxxx";
$url = "https://www.googleapis.com/upload/drive/v3/files?uploadType=multipart";
$inputarray = '';
$inputarray .= "--foo_bar_baz\r\n";
$inputarray .= "Content-Type: application/json; charset=UTF-8\r\n\r\n";
$inputarray .= "{\r\n";
$inputarray .= "\"name\": \"upload.jpg\",\r\n";
$inputarray .= "}\r\n\r\n";
$inputarray .= "--foo_bar_baz\r\n";
$inputarray .= "Content-Type:image/jpeg\r\n\r\n";
$inputarray .= file_get_contents("upload.jpg") . "\r\n";
$inputarray .= "--foo_bar_baz--\r\n";
$headers = array(
'Content-Type: multipart/related; boundary=foo_bar_baz',
'Authorization: Bearer ' . $token,
'Content-Length: ' . strlen($inputarray)
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $inputarray);
$output = curl_exec($ch);
curl_close($ch);
echo $output;