jer*_*iuh 12 xml curl google-drive-api
因此,这里的文档非常明确地说,将XML发布到具有此XML格式的字段名称的工作表的列表提要URL将插入一个新行.
Auth正在工作,授权帐户可以访问工作表.所有这些错误都得到解决.
所以当我发布到https://spreadsheets.google.com/feeds/list/key/mySheetIDHere/private/full时,我没有得到
"发布的条目缺少一个或多个必填字段:标题"
所以我添加<title></title>了以前存在的东西<gsx:Title></gsx:Title>,然后消失但被替换为
"发布的条目缺少一个或多个必填字段:rowCount"
所以我尝试添加一个int,它是当前行数,但该错误仍然存在.
目前的XML如下
<entry xmlns="http://www.w3.org/2005/Atom"
xmlns:gsx="http://schemas.google.com/spreadsheets/2006/extended">
<title>A Title</title>
<rowCount>3</rowCount>
<gsx:Title>A Title</gsx:Title>
<gsx:Name>A Name</gsx:Name>
<gsx:Email>An email</gsx:Email>
<gsx:Phone>A phone</gsx:Phone>
</entry>
Run Code Online (Sandbox Code Playgroud)
文档没有说明必填字段或行数.谁知道我做错了什么?
得到它的工作,这是我的所有脚本的要点.从您的URL看起来,您可能正在POST 添加工作表端点而不是添加列表行端点.工作表端点期望title和rowCount您一样.你想要的是一个看起来像的URL
https://spreadsheets.google.com/feeds/list/$spreadsheet_id/$worksheet_id/private/full
Run Code Online (Sandbox Code Playgroud)
我设置了一个电子表格来测试三列:
Apple, Red, Medium当我测试auth和读取时,我播种了它(哈!),然后添加Orange, Orange, Medium了这个cURL命令:
curl \
--header "Authorization: GoogleLogin auth=$auth" \
--header 'Content-Type: application/atom+xml' \
-d @data.xml \
-X POST \
"https://spreadsheets.google.com/feeds/list/$spreadsheet_id/$worksheet_id/private/full"
Run Code Online (Sandbox Code Playgroud)
哪里:
$auth 是我的Google身份验证令牌 https://www.google.com/accounts/ClientLogin$spreadsheet_id 是URL中可见的ID或从中获取的ID https://spreadsheets.google.com/feeds/spreadsheets/private/full$worksheet_id是从中获取的工作表(整个文档中的一个工作表/选项卡)https://spreadsheets.google.com/feeds/worksheets/$spreadsheet_id/private/full.我没有看到UI中可见的任何地方我可以获得工作表ID.并且data.xml看起来是这样的:
<entry xmlns="http://www.w3.org/2005/Atom"
xmlns:gsx="http://schemas.google.com/spreadsheets/2006/extended">
<gsx:fruit>Orange</gsx:fruit>
<gsx:color>Orange</gsx:color>
<gsx:size>Medium</gsx:size>
</entry>
Run Code Online (Sandbox Code Playgroud)
我注意到这些列都是小写的 - 我不确定这是否重要.我也注意到有title和content标签,当我取行,除了结构化的元素,但是这title是为一个红色的鲱鱼title,你所看到的错误.
<!-- GET https://spreadsheets.google.com/feeds/list/$spreadsheet_id/$worksheet_id/private/full -->
<!-- snip -->
<title type="text">Apple</title>
<content type="text">color: Red, size: Medium</content>
<gsx:fruit>Apple</gsx:fruit>
<gsx:color>Red</gsx:color>
<gsx:size>Medium</gsx:size>
<!-- snip -->
Run Code Online (Sandbox Code Playgroud)