我正在尝试在不使用Zend库的情况下在Google文档中创建新的电子表格。我完成了文档并尝试按照步骤进行操作,但现在我陷入困境。我的代码看起来像这样
$curl = curl_init();
$headers = array(
"GData-Version: 3.0",
"Authorization: GoogleLogin auth=" . $myToken,
"Content-Length: 350",
"Content-Type: application/atom+xml",
"X-Upload-Content-Length: 0"
);
$post_field = '<?xml version="1.0" encoding="UTF-8"?>
<entry xmlns="http://www.w3.org/2005/Atom" xmlns:docs="http://schemas.google.com/docs/2007">
<category scheme="http://schemas.google.com/g/2005#kind"
term="http://schemas.google.com/docs/2007#spreadsheet"/>
<title>Mytitle</title>
</entry>';
curl_setopt($curl, CURLOPT_URL, 'https://docs.google.com/feeds/upload/create-session/default/private/full');
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_POSTFIELDS, $post_field);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec($curl);
curl_close($curl);
令牌似乎工作正常,因为我能够使用它从谷歌文档中检索数据。让我感到惊讶的是,我没有收到API的回复。在尝试不同的解决方案时,我通常会收到一条错误消息,但响应字符串为空。
答案 0 :(得分:2)
您正在发送启动可恢复上传会话的请求(https://developers.google.com/gdata/docs/resumable_upload),但绝不会发送实际内容。
创建空文件时不需要恢复上传,而是将您的请求发送到https://docs.google.com/feeds/default/private/full
答案 1 :(得分:1)
如果可以,您应该使用Google Drive API的files.insert方法。