Привет, ребята Я действительно борется с перемещением документа из моей корневой папки в другую папку с помощью zend gdata, вот как я пытаюсь это сделать, но не работает.Как переместить документ google в папку с помощью Zend Gdata
$service = Zend_Gdata_Docs::AUTH_SERVICE_NAME;
$client = Zend_Gdata_ClientLogin::getHttpClient($gUser, $gPass, $service);
$link = "https://docs.google.com/feeds/documents/private/full/spreadsheet:0AUFNVEpLOVg2U0E"; // Not real id for privacy purposes
$docs = new Zend_GData_Docs($client);
// Attach a category object of folder to this entry
// I have tried many variations of this including attaching label categories
$cat = new Zend_Gdata_App_Extension_Category('My Folder Name','http://schemas.google.com/docs/2007#folder');
$entry = $docs->getDocumentListEntry($link);
$entry->setCategory(array($cat));
$return = $docs->updateEntry($entry,$entry->getEditLink()->href);
Когда я запускаю это, я получаю Нет ошибок, но ничего не меняется, и возвращаемые данные не содержат новую категорию.
EDIT: Хорошо, я понял, что его не категория, а ссылка, которая решает, какой «коллекция» (папка) ресурс принадлежит тоже. https://developers.google.com/google-apps/documents-list/#managing_collections_and_their_contents говорит, что каждый ресурс имеет как et родительские ссылки, поэтому я попытался изменить свой код, чтобы установить ссылку вместо заданной категории, но это не сработало.
$folder = "https://docs.google.com/feeds/documents/private/full/folder%3A0wSFA2WHc";
$rel = "http://schemas.google.com/docs/2007#parent";
$linkObj = new Zend_Gdata_App_Extension_Link($folder,$rel,'application/atom+xml', NULL,'Folder Name');
$links = $entry->getLink();
array_push($links,$linkObj);
$entry->setLink($links);
$return = $docs->updateEntry($entry,$entry->getEditLink()->href);
EDIT: решаемые [почти] OK Вот как переместить/копировать, вроде, из одной папки в другую: проще, чем первоначально предполагалось, но проблема создает ссылку и НЕ переехать! В настоящее время в обоих местах одновременно ....
// Folder you want to move too
$folder = "https://docs.google.com/feeds/folders/private/full/folder%asdsad";
$data = $docs->insertDocument($entry, $folder); // Entry is the entry you want moved using insert automatically assigns link & category for you...
Первое: классы Zend_Gdata неактивны, они используют v2 api по адресу https://developers.google.com/google-apps/documents-list/v2/developers_guide_protocol#SearchingDocs, ссылка, которую вы указали, для v3 апи. – RockyFord
Да, я знаю об этом, но эта ссылка - единственная документация, которую я должен продолжать в данный момент, ее все, что я должен попробовать и выяснить, как это сделать, api все еще использует атом, поэтому он все еще работает, его только документы google настолько легки в информации, даже на форуме есть много вопросов о том, как это сделать без удовлетворительных ответов ... https: //groups.google.com/forum/embed/? place = forum/google-documents- список-апи #! форум/Google-документы-список-апи. Я понимаю, что Zend Gdata старше, но он делает все остальное, это просто движение, которое, похоже, является проблемой. – Andre
Думаю, вам просто нужно сделать две операции, создать файл в новой папке, а затем удалить файл из старой папки. см. https://developers.google.com/google-apps/documents-list/v2/developers_guide_protocol#MovingIntoFolders ... Удача – RockyFord