我有一个用户想要使用谷歌文档更新他们网站上的文本。可能吗?
1 回答
我还没有研究过是否可以使用 API,但我知道加载页面和解析内容很容易。
这是我使用 C# 解析 Google 文档时的一个(相当无意义的)片段 -
contents = title = browser.ResponseData;
contents = contents.Substring(contents.IndexOf(">DOCS_mutations") + 20);
contents = contents.Substring(0, contents.IndexOf("\"}") + 1);
contents = contents.Substring(contents.IndexOf("\"s\":"));
contents = contents.Substring(contents.IndexOf(":") + 1);
contents = contents.Substring(1, contents.Length - 2);
title = title.Substring(title.IndexOf("/><script type=\"text/javascript\">"));
title = title.Substring(title.IndexOf("config, '") + 9);
title = title.Substring(0, title.IndexOf("'"));
上面的代码片段通过解析以下区域(其中foo是我的文档的内容)从 HTML 中获取文档的内容 -
DOCS_mutations = [{"ty":"is","ibi":1,"s":"foo"},
该信息只是说明如何做到这一点的一个例子。
重要的是要注意某些字符被替换为其他字符,这样它们就不会干扰 HTML。例如,内容
foo " / \ <
被替换为
foo \" / \ \u003C
我强烈建议您考虑考虑一种可以满足您的客户的替代方案,因为这种解析另一个页面以更新另一个页面的方法感觉非常不必要。
假设您使用的是 PHP,如果您真的需要这样做,那么我建议您使用cURL或file_get_contents()
将文档下载到您的服务器上。
我应该注意,您必须考虑您的想法的效率,因为您当然不希望每次有人希望查看您的页面时都从 Google Docs 下载最新文档。我建议根据站点管理员的请求/指示调用重新下载。另请注意,Google 文档会定期更新服务器端版本(在您修改文档时)。需要注意这一点,因为如果您不考虑这一点,这将使您的服务器可以下载未完成的文档。
最后,作为使用 Google Docs 的替代方案,我希望建议您创建一个管理控制面板供您的客户使用。问他是什么让他希望以这种方式使用 Google Docs,然后实现使您自己的编辑器成为Google Docs的可接受替代品的功能。
如果您需要进一步说明,或者您需要一些示例代码,请告诉我。