4

我正在开发一个基于谷歌应用程序的基本系统。就像我之前定义的那样,我正在构建一个简单的订购系统,并为每个下达的订单附加一个文件或文档。我希望能够对其进行设置,以便我上传的任何文件都上传到谷歌文档中,并且我能够以某种方式从我自己的应用程序中维护对该文件的引用,即这些文件与这样那样的顺序有关。我的应用程序希望是基于谷歌应用程序的,我正在构建它以便稍后部署到云中。我该如何开始,我需要做什么?是否已经有我可以使用和应用的工作小部件,或者我需要为此创建自己的定制解决方案?

我在 PHP MySQL 工作。

4

1 回答 1

8

你所描述的实际上很容易做到。您需要使用Google Documents List Data API (DocsList API)。此 API 用于在 Google Docs 中创建(上传)、检索、更新和删除文档。

具体来说,由于您使用的是 PHP,因此您需要将 PHP 客户端库用于 DocsList API。这在此处记录。请务必阅读该文档的入门部分,因为它列举了设置Zend 框架的重要步骤,DocsList PHP 客户端库与该框架捆绑在一起。

假设您正在创建文字处理文档(而不是电子表格或演示文稿),您需要上传文档的代码是直截了当的。

// Use ClientLogin to authenticate to Google Docs
$username = 'user@gmail.com';
$password = 'myPassword';
$service = Zend_Gdata_Docs::AUTH_SERVICE_NAME; 
$httpClient = Zend_Gdata_ClientLogin::getHttpClient($username, $password,
    $service);
$docs = new Zend_Gdata_Docs($httpClient);

// Actually upload the file, the second parameter here is the document title
$newDocumentEntry = $docs->uploadFile('test.txt', 'order-123456',
    'text/plain', Zend_Gdata_Docs::DOCUMENTS_LIST_FEED_URI);

您提到您还希望在系统中存储对这些文档的引用。为此,只需给每个文档一个唯一的标题(例如“order-123456”。)

接下来,要获取存储的文档,请使用以下代码:

$docsQuery = new Zend_Gdata_Docs_Query();
$docsQuery->setTitle("order-123456");
$docsQuery->setTitleExact(true);
$feed = $docs->getDocumentListFeed($docsQuery);
foreach ($feed->entries as $entry) {
  // ... every $entry is an individual document found in the search ...
}

请注意,此示例使用 ClientLogin,它需要原始用户名和密码。一种更好但不太简单的身份验证方法是使用 OAuth/AuthSub。另请注意,PHP 客户端库目前仅针对 DocsList API 的 1.0 版进行了更新,该版本已被弃用。客户端库应该很快会更新版本以支持更新版本的 API。有关详细信息,请参阅Google 文档列表数据 API 开发人员指南。祝你好运!

于 2010-04-05T01:49:30.323 回答