Google Docs API - Zend gData - 如何查找集合的URI

时间:2012-04-26 15:21:54

标签: php zend-framework gdata google-docs-api google-drive-api

我有一个Zend_Gdata_App_Entry类型的条目,

此条目是一个集合/文件夹,我尝试获取此文件夹的URI,

我知道URI是一个URL,但条目的id也是一个URL也有什么区别?

我想这样做:

// Instantiate a FolderQuery object to retrieve the content of the folder.
FolderQuery contentQuery = new FolderQuery(folder.ResourceId);

URI = contentQuery.Uri

但不是在.NET中,而是在PHP中使用Zend gdata框架

谢谢!

2 个答案:

答案 0 :(得分:1)

在GData中,自身URI和ID通常相对类似。所以,如果你有一个或另一个,它真的没关系。 ResourceID略有不同,因为它们不是URL,而是folder:1234形式。如果您在folder:前缀后面有数字,则可以轻松构建它们。如果仔细查看从资源ID构造的文档的ID。所有这些都存在实际差异,GData协议主要需要它们。

无论如何,一旦你拥有该文件夹的ID或资源ID,你就可以使用以下网址列出其内容:

https://docs.google.com/feeds/default/private/full/folder%3A1234/contents

请确保将folder%3A1234替换为该文件夹的实际Ressource ID。

然后,您可以在方法Zend_Gdata_Docs.getDocumentListFeed(String location)中使用该网址作为位置属性。这将为您提供包含文件夹内所有元素的文档Feed。

答案 1 :(得分:1)

也许这会对你有所帮助。创建子文件夹,然后将文件上传到新文件夹:

$service = Zend_Gdata_Docs::AUTH_SERVICE_NAME;
$client = Zend_Gdata_ClientLogin::getHttpClient($user, $pass, $service);
$docs = new Zend_Gdata_Docs($client);

$parentFolder = 'folder%3A[folderid]';    

$newFolder = $docs->createFolder($_POST['email'], $parentFolder);

$location = str_replace($parentFolder . '/', '', $newFolder->getSelfLink()->getHref());

// Upload the file to google docs
$newDocumentEntry = $docs->uploadFile(
    $fileToUploadTemp, 
    $fileToUpload, 
    Zend_Gdata_Docs::lookupMimeType($fileExtension),
    $location
);