我正在开发基于谷歌应用程序的基本系统。就像我之前定义的那样,我正在构建一个简单的订购系统,并且每个订单都会附加一个文件或文档。我希望能够设置它,以便我上传的任何文件都上传到谷歌文档,我不知何故能够从我自己的应用程序维护对该文件的引用,即这些文件与此类订单有关。我的应用程序基于谷歌应用程序,我希望它能够在以后部署到云中时构建它。我该如何开始这个,我需要做什么?我已经可以使用和应用工作小工具吗?或者我是否需要为此创建自己的自定义解决方案?
我在Php MySQL工作。
答案 0 :(得分:8)
你所描述的实际上很容易做到。您需要使用Google Documents List Data API(DocsList API。)此API用于在Google文档中创建(上传),检索,更新和删除文档。
具体来说,由于您使用的是PHP,因此您需要将PHP客户端库用于DocsList API。这是documented here。请务必阅读该文档的Getting Started部分,因为它列举了设置Zend Framework的重要步骤,其中捆绑了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,它需要原始用户名和密码。一种更好但不那么简单的身份验证方法是use OAuth/AuthSub。另请注意,PHP客户端库目前仅针对DocsList API的1.0版进行了更新,不推荐使用。应该很快就会有一个客户端库的更新版本,以支持更新版本的API。有关更多信息,请参阅Google Documents List Data API Developer's Guide。祝你好运!