Нужно загрузить файлы в Google Docs из моего приложения и сохранить ссылку на загруженный файл - PullRequest
4 голосов
/ 16 марта 2010

Я работаю над базовой системой приложений Google. Как я уже определил ранее, я строю простую систему заказов и к каждому размещенному заказу прикрепляю файл или документ. Я хотел бы иметь возможность установить его так, чтобы любой загружаемый файл загружался в Google Docs, и я каким-то образом могу сохранять ссылку на этот файл из моего собственного приложения, т.е. эти файлы связаны с тем или иным порядком. Надеюсь, мое приложение основано на приложениях Google, и я создаю его для последующего развертывания в облаке. Как начать с этого и что мне нужно делать? Есть ли уже работающие виджеты, которые я могу использовать и применять, или мне нужно создать собственное решение для этого?

Я работаю в Php MySQL.

1 Ответ

8 голосов
/ 05 апреля 2010

То, что вы описали, на самом деле довольно легко сделать. Вам необходимо использовать API данных списка документов Google (DocsList API.) Этот API-интерфейс используется для создания (загрузки), извлечения, обновления и удаления документов в Документах Google.

В частности, поскольку вы используете PHP, вы захотите использовать клиентскую библиотеку PHP для API DocsList. Это задокументировано здесь . Обязательно прочтите часть Getting Started этого документа, поскольку в ней перечислены важные шаги по настройке Zend Framework , с которыми поставляется клиентская библиотека PHP DocsList.

Предполагая, что вы создаете документы для обработки текста (в отличие от электронных таблиц или презентаций), код, необходимый для загрузки документа, прост.

// 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 обновляется только для версии 1.0 API DocsList, что является устаревшим. Скоро должен появиться обновленный выпуск клиентской библиотеки для поддержки более новых версий API. Для получения дополнительной информации см. Руководство разработчика API данных Google List List Data . Удачи!

...