docxファイルをGoogleドライブにアップロードしてからPDFとしてダウンロードすると、安定したスクリプトを取得できません。Google Api for PHP(ドライブAPI).pdfとしてアップロード.docxファイル
コード:
//Google API
require_once('vendor/autoload.php');
putenv('GOOGLE_APPLICATION_CREDENTIALS='.__DIR__.'/2ab4ece19bd5.json');
$client = new Google_Client();
$client->setApplicationName('sp-gen');
$client->setScopes(array('https://www.googleapis.com/auth/drive'));
$client->useApplicationDefaultCredentials();
$service = new Google_Service_Drive($client);
$fileMetadata = new Google_Service_Drive_DriveFile(array(
'name' => '281e2399740c88957143507721bd0f25.docx',
'mimeType' => 'application/vnd.google-apps.document'
));
$content = file_get_contents('281e2399740c88957143507721bd0f25.docx');
$file = $service->files->create($fileMetadata, array(
'data' => $content,
'mimeType' => 'application/vnd.google-apps.document',
'uploadType' => 'multipart',
'fields' => 'id')
);
$content = $service->files->export($file->id, 'application/pdf', array('alt' => 'media'));
file_put_contents(str_replace('.docx', '.pdf', '281e2399740c88957143507721bd0f25.docx'), $content->getBody()->getContents());
このコードは、用途の.. 20から30パーセントで動作します。場合によっては$ service-> files-> export()がエラーコード500を返しますが、多くの場合、通常の応答(200)を返しますが、Content-Lengthは0になります。
何か問題が起こっていますか?それとも、成功するまでファイルをダウンロードしようとしているのですか?
'$ファイル - >? '$ file-> data'であるべきではありません。 – pokeybit
' $ service-> files-> create() '戻り値のオブジェクトidフィールドには、Googleドライブで作成されたファイルのIDが含まれています。エラーコード500を除く '$ file-> id'は常に存在します。 – Yurciu
ファイルの作成とエクスポートの呼び出しの間に遅延がある可能性があります – pokeybit