• Главная»
  • Уроки»
  • PHP»
  • Работа с Google Docs средствами PHP (часть 2). Поиск, загрузка и удаление документов

Этот урок связан с проектом Работа с Google Docs средствами PHP

Работа с Google Docs средствами PHP (часть 2). Поиск, загрузка и удаление документов

Продолжаем серию уроков по работе с Google Docs с помощью PHP. Во второй части покажем вам несколько сниппетов, с помощью которых вы сможете осуществить поиск по названию документа, а так же как загружать новые документы и удалять их.

Поиск документов по их названию

В первую очередь давайте посмотрим как осуществить поиск в Google Docs по названию документа. Подключение к сервису можете найти в первом уроке:

// ... подключение к сервису Google Documents List

echo "<h2>Поиск документов по их названию</h2>";
$docsQuery = new Zend_Gdata_Docs_Query();
$docsQuery->setTitle('Test');
$feed = $gdClient->getDocumentListFeed($docsQuery);

echo "<ul>";
foreach ($feed->entries as $entry) {
    echo "<li>";
    echo "<a href=" . $entry->getAlternateLink()->href . ">";
    echo $entry->title;
    echo "</a>";
    echo "</li>";
}
echo "</ul>";

Теперь давайте пройдёмся по тому, как загружать новые документы.

Загрузка текстового документа

// ... подключение к сервису Google Documents List

$originalFileName = 'Test Document';
$fileToUpload = 'Test document.doc';

$newDocumentEntry = $gdClient->uploadFile($fileToUpload, $originalFileName,  null,
        Zend_Gdata_Docs::DOCUMENTS_LIST_FEED_URI);

echo "Загруженный документ: ";
$alternateLink = $newDocumentEntry->getAlternateLink()->href;
echo "<a href=" . $alternateLink . ">";
echo $newDocumentEntry->title->text;
echo "</a>";

Загрузка таблицы

// ... подключение к сервису Google Documents List

$originalFileName = 'Test Spreadsheet';
$fileToUpload = 'Test spreadsheet.xls';

$filenameParts = explode('.', $fileToUpload);
$fileExtension = end($filenameParts);
$newDocumentEntry = $gdClient->uploadFile($fileToUpload, $originalFileName,
        Zend_Gdata_Docs::lookupMimeType($fileExtension), Zend_Gdata_Docs::DOCUMENTS_LIST_FEED_URI);

Загрузка презентации

// ... подключение к сервису Google Documents List

$originalFileName = 'Test Presentation';
$fileToUpload = 'Test presentation.ppt';

$filenameParts = explode('.', $fileToUpload);
$fileExtension = end($filenameParts);
$newDocumentEntry = $gdClient->uploadFile($fileToUpload, $originalFileName,
        'application/vnd.ms-powerpoint', Zend_Gdata_Docs::DOCUMENTS_LIST_FEED_URI);

Ну и сделаем логическое завершение данного цикла, покажем как удалять документ.

Удаление документа по его названию

// ... подключение к сервису Google Documents List

echo "<h2>Поиск документа по названию и его удаление</h2>";

$docsQuery = new Zend_Gdata_Docs_Query();
$docsQuery->setTitle('Test presentation');
$feed = $gdClient->getDocumentListFeed($docsQuery);

$entry = $feed->entries[0];
$entry->delete();

Надеюсь, данные сниппеты будут вам полезны.

В следующем уроке начнём работу с Google Таблицами.

Данный урок подготовлен для вас командой сайта ruseller.com
Источник урока: www.ruseller.com
Автор: Станислав Протасевич
Урок создан: 13 Сентября 2014
Просмотров: 11973
Правила перепечатки


5 последних уроков рубрики "PHP"

  • Фильтрация данных с помощью zend-filter

    Когда речь идёт о безопасности веб-сайта, то фраза "фильтруйте всё, экранируйте всё" всегда будет актуальна. Сегодня поговорим о фильтрации данных.

  • Контекстное экранирование с помощью zend-escaper

    Обеспечение безопасности веб-сайта — это не только защита от SQL инъекций, но и протекция от межсайтового скриптинга (XSS), межсайтовой подделки запросов (CSRF) и от других видов атак. В частности, вам нужно очень осторожно подходить к формированию HTML, CSS и JavaScript кода.

  • Подключение Zend модулей к Expressive

    Expressive 2 поддерживает возможность подключения других ZF компонент по специальной схеме. Не всем нравится данное решение. В этой статье мы расскажем как улучшили процесс подключение нескольких модулей.

  • Совет: отправка информации в Google Analytics через API

    Предположим, что вам необходимо отправить какую-то информацию в Google Analytics из серверного скрипта. Как это сделать. Ответ в этой заметке.

  • Подборка PHP песочниц

    Подборка из нескольких видов PHP песочниц. На некоторых вы в режиме online сможете потестить свой код, но есть так же решения, которые можно внедрить на свой сайт.

или авторизуйтесь, чтобы добавлять комментарии, оценивать уроки и сохранять их в личном кабинете
  • 18 Сентября 2014 16:03
    lhornet
    Подскажите пожалуйста, как в Google Docs таблицы средствами PHP сохранять данные форм на сайте? Заранее благодарен, Алексей.
    • 18 Сентября 2014 16:52
      stas.protasevich
      Затронем эту тему в будущих уроках
    • 18 Сентября 2014 17:46
      asizintsev
      у них прям в API есть решение...
      • 19 Сентября 2014 01:06
        lhornet
        Конкретно можете сказать какое? Как можно такое реализовать? Каждый раз при такой ошибке приходит на почту уведомление о том, что было заблокирована подозрительная попытка входа на почту. Мне кажется у меня не правильная настройка spreadsheet таблицы или формы. Ее нужно привязывать к урлу сайта? Или ключа таблицы достаточно же
  • 23 Сентября 2014 12:38
    lhornet
    Разобрался с проблемой, если кому будет полезно напишу что не получилось. Но прежде всего я хотел бы поблагодарить автора статьи - Станислава Протасевича, который не просто мне помог разобраться с проблемой, а консультировал до того момента пока я полностью не решил проблему. Итак по гугл доксу: 1. Если вы размещаете скрипт на сервере на нем должен быть включен протокол ssl, т.к. вы авторизуетесь удаленно с другого адреса; 2. В самом аккаунте гугл должен быть включен доступ к аккаунту во вкладке безопасность. 3. Таблица и форма должна быть создана с помощью spreadsheet и имена полей с которых принимаются данные должны четко соответствовать полям в форме гугл докс. 4. Если вы сохраняете дату и referer, то они должны быть в кавычках. ($FormData["date"] = $datetime->format("Y/m/d H:i:s"); $FormData["referer"] = $_SERVER['HTTP_REFERER'];). Это конечно очевидно, но может быть причиной ошибок. 5. Если появляется ошибка вроде (Fatal error: Uncaught exception 'Zend_Gdata_App_HttpException' with message 'Expected response code 200, got 400 Запись пустых строк невозможна; выполните операцию удаления.) происходит как правило из-за того что указана запись в первую строку таблицы которая уже занята записью. Лично мне помогло убрать из скрипта - $worksheetID = "od6". Соотвественно отсюда тоже - $insertedListEntry = $spreadsheetService->insertRow($FormData, $spreadsheetKey); 6. В случае если ошибка выпадает - (Fatal error: Uncaught exception 'Zend_Gdata_App_AuthException' with message 'Authentication with Google failed. Reason: BadAuthentication' in ...) это происходит скорее всего по таким причинам. Во первых нужно проверить правильность логина пароля и $spreadsheetKey. Второе к доступ аккаунту должен быть включен(пункт 2). Третье как правило гугл распознает такое подключение как взлом вашей учетки и блокирует всяческое проникновение к ней. В результате в учетке возникает ошибка (оформлена красным цветом) "Ваша учетную запись пытались пытались взломать. Это были вы?" тут нужно нажимать да. В противном случае если это не поможет нужно создавать новую учетную запись, мне помогло именно это. 7. Проверять работу лучше сначала на локальном веб-вервере (на к-ром тоже должнен быть включен модуль ssl), и когда полностью будет готово загружать это все на сервер. У меня по началу работало по разному пока я не разобрался с ошибками. Также рекомендую всем на момент отладки включить режим отображение всех ошибок - error_reporting(E_ALL); ini_set('display_errors', 1);
^ Наверх ^