无法预览/打开上传到Google doc API的文档

时间:2017-05-04 16:18:35

标签: php google-api-php-client

我最近将Google云端硬盘的API集成到了我建立在CodeIgniter上的网站上。该网站是关于撰写一篇文章并将其转换为Word文档,我使用提供的API脚本设法将其上传到Google云端硬盘

但是,我无法在Google云端硬盘上预览或打开上传的文档。但是,一旦我从Google驱动器下载文档并通过Microsoft Word处理器打开,我就可以查看和编辑它了,请告诉我应该做些什么来使用Google docs工具在Google驱动器上编辑我的文档

这是我用来上传网站生成的文件的编码,这是附加的示例文档。

请注意:就像我前面提到的那样,当我将从Google云端硬盘下载的文档重新上传回Google云端硬盘时,文档工作正常,我可以预览并编辑它。

if ($_SERVER['REQUEST_METHOD'] == 'POST' && $client->getAccessToken()) {

// We'll setup an empty 1MB file to upload.
$doc_file = $this->session->userdata('google_doc_file');
DEFINE("TESTFILE", __DIR__ . '/../../../papers/'.$doc_file.'.docx');
// This is uploading a file directly, with no metadata associated.
$file = new Google_Service_Drive_DriveFile();
$file->setName($doc_file.'.docx');
$result = $service->files->create(
    $file,
    array(
    'data' => file_get_contents(TESTFILE),
    'mimeType' => 'text/docx',
    'uploadType' => 'multipart'
    )
);    
}

1 个答案:

答案 0 :(得分:0)

如果您使用

之类的东西登录
putenv('GOOGLE_APPLICATION_CREDENTIALS=gdoc-secret.json');
$this->client = new Google_Client();
$this->client->useApplicationDefaultCredentials();

这些文档存在于服务帐户自己的驱动器空间中,而不是您的。 这是帐户向导为Web使用而建议的帐户类型,但不是Google Drive APIs v3 quickstart guide使用的帐户类型。

您可以与其他帐户共享,或设置相应的权限并使用文件的链接。