|
|
Zend Framework 2 Documentation (Manual) | |
|
File: /_sources/modules/zendgdata.docs.txt
Size: | 5842 |
Storage flags: | no_autoload,compress/gzip (34%) |
.. _zendgdata.docs:
Using Google Documents List Data API
====================================
The Google Documents List Data *API* allows client applications to upload documents to Google Documents and list
them in the form of Google Data *API* ("GData") feeds. Your client application can request a list of a user's
documents, and query the content in an existing document.
See http://code.google.com/apis/documents/overview.html for more information about the Google Documents List
*API*.
.. _zendgdata.docs.listdocuments:
Get a List of Documents
-----------------------
You can get a list of the Google Documents for a particular user by using the ``getDocumentListFeed()`` method of
the docs service. The service will return a ``ZendGData\Docs\DocumentListFeed`` object containing a list of
documents associated with the authenticated user.
.. code-block:: php
:linenos:
$service = ZendGData\Docs::AUTH_SERVICE_NAME;
$client = ZendGData\ClientLogin::getHttpClient($user, $pass, $service);
$docs = new ZendGData\Docs($client);
$feed = $docs->getDocumentListFeed();
The resulting ``ZendGData\Docs\DocumentListFeed`` object represents the response from the server. This feed
contains a list of ``ZendGData\Docs\DocumentListEntry`` objects (``$feed->entries``), each of which represents a
single Google Document.
.. _zendgdata.docs.creating:
Upload a Document
-----------------
You can create a new Google Document by uploading a word processing document, spreadsheet, or presentation. This
example is from the interactive Docs.php sample which comes with the library. It demonstrates uploading a file and
printing information about the result from the server.
.. code-block:: php
:linenos:
/**
* Upload the specified document
*
* @param ZendGData\Docs $docs The service object to use for communicating
* with the Google Documents server.
* @param boolean $html True if output should be formatted for display in a
* web browser.
* @param string $originalFileName The name of the file to be uploaded. The
* MIME type of the file is determined from the extension on this file
* name. For example, test.csv is uploaded as a comma separated volume
* and converted into a spreadsheet.
* @param string $temporaryFileLocation (optional) The file in which the
* data for the document is stored. This is used when the file has been
* uploaded from the client's machine to the server and is stored in
* a temporary file which does not have an extension. If this parameter
* is null, the file is read from the originalFileName.
*/
function uploadDocument($docs, $html, $originalFileName,
$temporaryFileLocation) {
$fileToUpload = $originalFileName;
if ($temporaryFileLocation) {
$fileToUpload = $temporaryFileLocation;
}
// Upload the file and convert it into a Google Document. The original
// file name is used as the title of the document and the MIME type
// is determined based on the extension on the original file name.
$newDocumentEntry = $docs->uploadFile($fileToUpload, $originalFileName,
null, ZendGData\Docs::DOCUMENTS_LIST_FEED_URI);
echo "New Document Title: ";
if ($html) {
// Find the URL of the HTML view of this document.
$alternateLink = '';
foreach ($newDocumentEntry->link as $link) {
if ($link->getRel() === 'alternate') {
$alternateLink = $link->getHref();
}
}
// Make the title link to the document on docs.google.com.
echo "<a href=\"$alternateLink\">\n";
}
echo $newDocumentEntry->title."\n";
if ($html) {echo "</a>\n";}
}
.. _zendgdata.docs.queries:
Searching the documents feed
----------------------------
You can search the Document List using some of the `standard Google Data API query parameters`_. Categories are
used to restrict the type of document (word processor document, spreadsheet) returned. The full-text query string
is used to search the content of all the documents. More detailed information on parameters specific to the
Documents List can be found in the `Documents List Data API Reference Guide`_.
.. _zendgdata.docs.listwpdocuments:
Get a List of Word Processing Documents
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
You can also request a feed containing all of your documents of a specific type. For example, to see a list of your
work processing documents, you would perform a category query as follows.
.. code-block:: php
:linenos:
$feed = $docs->getDocumentListFeed(
'http://docs.google.com/feeds/documents/private/full/-/document');
.. _zendgdata.docs.listspreadsheets:
Get a List of Spreadsheets
^^^^^^^^^^^^^^^^^^^^^^^^^^
To request a list of your Google Spreadsheets, use the following category query:
.. code-block:: php
:linenos:
$feed = $docs->getDocumentListFeed(
'http://docs.google.com/feeds/documents/private/full/-/spreadsheet');
.. _zendgdata.docs.textquery:
Performing a text query
^^^^^^^^^^^^^^^^^^^^^^^
You can search the content of documents by using a ``ZendGData\Docs\Query`` in your request. A Query object can be
used to construct the query *URI*, with the search term being passed in as a parameter. Here is an example method
which queries the documents list for documents which contain the search string:
.. code-block:: php
:linenos:
$docsQuery = new ZendGData\Docs\Query();
$docsQuery->setQuery($query);
$feed = $client->getDocumentListFeed($docsQuery);
.. _`standard Google Data API query parameters`: http://code.google.com/apis/gdata/reference.html#Queries
.. _`Documents List Data API Reference Guide`: http://code.google.com/apis/documents/reference.html#Parameters
For more information about the PHK package format: http://phk.tekwire.net