TigerZF
🌐Español

Capítulo 37. Zend_Gdata

Tabla de contenidos

37.1. Introducción
37.1.1. Estructura de Zend_Gdata
37.1.2. Interactuando con los servicios de Google
37.1.3. Obtener instancias de clases Zend_Gdata
37.1.4. Autenticación del cliente de Google Data
37.1.5. Dependencias
37.1.6. Crear un nuevo cliente Gdata
37.1.7. Parámetros de consulta comunes
37.1.8. Obtener un feed
37.1.9. Trabajar con feeds de múltiples páginas
37.1.10. Trabajar con datos en feeds y entradas
37.1.11. Actualizar entradas
37.1.12. Publicar entradas en los servidores de Google
37.1.13. Eliminar entradas en los servidores de Google
37.2. Usar Google Analytics
37.2.1. Recuperar datos de cuenta
37.2.2. Recuperar datos de informes
37.3. Autenticación con AuthSub
37.3.1. Crear un cliente Http autenticado con AuthSub
37.3.2. Revocar la autenticación de AuthSub
37.4. Usar la API de datos de Book Search
37.4.1. Autenticarse en el servicio Book Search
37.4.2. Buscar libros
37.4.2.1. Búsqueda de socio de marca compartida
37.4.3. Usar funciones de comunidad
37.4.3.1. Añadir una valoración
37.4.3.2. Reseñas
37.4.3.2.1. Añadir una reseña
37.4.3.2.2. Editar una reseña
37.4.3.3. Etiquetas
37.4.3.3.1. Enviar un conjunto de etiquetas
37.4.3.4. Recuperar anotaciones: reseñas, valoraciones y etiquetas
37.4.3.5. Eliminar anotaciones
37.4.4. Colecciones de libros y My Library
37.4.4.1. Recuperar los libros de la biblioteca de un usuario
37.4.4.1.1. Recuperar todos los libros de la biblioteca de un usuario
37.4.4.1.2. Buscar libros en la biblioteca de un usuario
37.4.4.2. Actualizar libros en la biblioteca de un usuario
37.4.4.2.1. Añadir un libro a una biblioteca
37.4.4.2.2. Eliminar un libro de una biblioteca
37.5. Autenticación con ClientLogin
37.5.1. Crear un cliente Http autenticado con ClientLogin
37.5.2. Finalizar un cliente Http autenticado con ClientLogin
37.6. Usar Google Calendar
37.6.1. Conectar con el servicio Calendar
37.6.1.1. Autenticación
37.6.1.2. Crear una instancia de servicio
37.6.2. Recuperar una lista de calendarios
37.6.3. Recuperar eventos
37.6.3.1. Consultas
37.6.3.2. Recuperar eventos por orden de hora de inicio
37.6.3.3. Recuperar eventos en un rango de fechas especificado
37.6.3.4. Recuperar eventos mediante consulta de texto completo
37.6.3.5. Recuperar eventos individuales
37.6.4. Crear eventos
37.6.4.1. Crear eventos de ocurrencia única
37.6.4.2. Horarios y recordatorios de eventos
37.6.4.3. Crear eventos recurrentes
37.6.4.4. Usar QuickAdd
37.6.5. Modificar eventos
37.6.6. Eliminar eventos
37.6.7. Acceder a los comentarios de eventos
37.7. Usar la API de datos de Google Documents List
37.7.1. Obtener una lista de documentos
37.7.2. Subir un documento
37.7.3. Buscar en el feed de documentos
37.7.3.1. Obtener una lista de documentos de procesamiento de texto
37.7.3.2. Obtener una lista de hojas de cálculo
37.7.3.3. Realizar una consulta de texto
37.8. Usar Google Spreadsheets
37.8.1. Crear una hoja de cálculo
37.8.2. Obtener una lista de hojas de cálculo
37.8.3. Obtener una lista de hojas de trabajo
37.8.4. Interactuar con feeds basados en listas
37.8.4.1. Obtener un feed basado en lista
37.8.4.2. Ordenar filas de forma inversa
37.8.4.3. Enviar una consulta estructurada
37.8.4.4. Añadir una fila
37.8.4.5. Editar una fila
37.8.4.6. Eliminar una fila
37.8.5. Interactuar con feeds basados en celdas
37.8.5.1. Obtener un feed basado en celdas
37.8.5.2. Enviar una consulta de rango de celdas
37.8.5.3. Cambiar el contenido de una celda
37.9. Usar Google Apps Provisioning
37.9.1. Establecer el dominio actual
37.9.1.1. Establecer el dominio para la clase de servicio
37.9.1.2. Establecer el dominio para las clases de consulta
37.9.2. Interactuar con usuarios
37.9.2.1. Crear una cuenta de usuario
37.9.2.2. Recuperar una cuenta de usuario
37.9.2.3. Recuperar todos los usuarios de un dominio
37.9.2.4. Actualizar una cuenta de usuario
37.9.2.4.1. Restablecer la contraseña de un usuario
37.9.2.4.2. Forzar a un usuario a cambiar su contraseña
37.9.2.4.3. Suspender una cuenta de usuario
37.9.2.4.4. Conceder derechos administrativos
37.9.2.5. Eliminar cuentas de usuario
37.9.3. Interactuar con apodos
37.9.3.1. Crear un apodo
37.9.3.2. Recuperar un apodo
37.9.3.3. Recuperar todos los apodos de un usuario
37.9.3.4. Recuperar todos los apodos de un dominio
37.9.3.5. Eliminar un apodo
37.9.4. Interactuar con grupos
37.9.4.1. Crear un grupo
37.9.4.2. Recuperar un grupo individual
37.9.4.3. Recuperar todos los grupos de un dominio
37.9.4.4. Eliminar un grupo
37.9.4.5. Actualizar un grupo
37.9.4.6. Recuperar todos los grupos a los que pertenece una persona
37.9.5. Interactuar con miembros de grupo
37.9.5.1. Añadir un miembro a un grupo
37.9.5.2. Comprobar si un miembro pertenece a un grupo
37.9.5.3. Eliminar un miembro de un grupo
37.9.5.4. Recuperar la lista de miembros de un grupo
37.9.6. Interactuar con propietarios de grupo
37.9.6.1. Añadir un propietario a un grupo
37.9.6.2. Recuperar la lista de propietarios de un grupo
37.9.6.3. Comprobar si un correo electrónico es propietario de un grupo
37.9.6.4. Eliminar un propietario de un grupo
37.9.7. Interactuar con listas de correo
37.9.7.1. Crear una lista de correo
37.9.7.2. Recuperar todas las listas de correo a las que está suscrito un destinatario
37.9.7.3. Recuperar todas las listas de correo de un dominio
37.9.7.4. Eliminar una lista de correo
37.9.8. Interactuar con destinatarios de listas de correo
37.9.8.1. Añadir un destinatario a una lista de correo
37.9.8.2. Recuperar la lista de suscriptores de una lista de correo
37.9.8.3. Eliminar un destinatario de una lista de correo
37.9.9. Gestión de errores
37.10. Usar Picasa Web Albums
37.10.1. Conectar con el servicio
37.10.1.1. Autenticación
37.10.1.2. Crear una instancia de servicio
37.10.2. Comprender y construir consultas
37.10.3. Recuperar feeds y entradas
37.10.3.1. Recuperar un usuario
37.10.3.2. Recuperar un álbum
37.10.3.3. Recuperar una foto
37.10.3.4. Recuperar un comentario
37.10.3.5. Recuperar una etiqueta
37.10.4. Crear entradas
37.10.4.1. Crear un álbum
37.10.4.2. Crear una foto
37.10.4.3. Crear un comentario
37.10.4.4. Crear una etiqueta
37.10.5. Eliminar entradas
37.10.5.1. Eliminar un álbum
37.10.5.2. Eliminar una foto
37.10.5.3. Eliminar un comentario
37.10.5.4. Eliminar una etiqueta
37.10.5.5. Concurrencia optimista (notas sobre la eliminación)
37.11. Capturar excepciones de Gdata

37.1. Introducción

Las APIs de Google Data proporcionan una interfaz programática para algunos de los servicios en línea de Google. El protocolo Google data se basa en el Atom Publishing Protocol y permite a las aplicaciones cliente recuperar datos que coincidan con consultas, publicar datos, actualizar datos y eliminar datos usando HTTP estándar y el formato de sindicación Atom. El componente Zend_Gdata es una interfaz de PHP 5 para acceder a Google Data desde PHP. El componente Zend_Gdata también admite el acceso a otros servicios que implementan el Atom Publishing Protocol.

Consulte http://code.google.com/apis/gdata/ para más información sobre las APIs de Google Data.

Los servicios accesibles mediante Zend_Gdata incluyen los siguientes:

  • Google Calendar es una popular aplicación de calendario en línea.

  • Google Spreadsheets proporciona una herramienta colaborativa de hojas de cálculo en línea que puede usarse como un simple almacén de datos para sus aplicaciones.

  • Google Documents List proporciona una lista en línea de todas las hojas de cálculo, documentos de procesamiento de texto y presentaciones almacenadas en una cuenta de Google.

  • Google Provisioning proporciona la capacidad de crear, recuperar, actualizar y eliminar cuentas de usuario, apodos, grupos y listas de correo en un dominio alojado por Google Apps.

  • Picasa Web Albums proporciona una aplicación de intercambio de fotos en línea.

  • Google Analytics es una aplicación de estadísticas de visitantes.

  • Google Blogger es un popular proveedor de Internet de "publicación con un solo clic" y sindicación.

  • Google CodeSearch le permite buscar código fuente público de muchos proyectos.

  • Google Notebook le permite ver contenido público de Notebook.

[Note] Servicios no admitidos

Zend_Gdata no proporciona una interfaz para ningún otro servicio de Google, como Search, Gmail, Translation o Maps. Solo se admiten los servicios que soportan la Google Data API.

37.1.1. Estructura de Zend_Gdata

Zend_Gata se compone de varios tipos de clases:

  • Clases de servicio - heredan de Zend_Gdata_App. Estas también incluyen otras clases como Zend_Gdata, Zend_Gdata_Spreadsheets, etc. Estas clases permiten interactuar con los servicios APP o GData y proporcionan la capacidad de recuperar feeds, recuperar entradas, publicar entradas, actualizar entradas y eliminar entradas.

  • Clases de consulta - heredan de Zend_Gdata_Query. Estas también incluyen otras clases para servicios específicos, como Zend_Gdata_Spreadsheets_ListQuery y Zend_Gdata_Spreadsheets_CellQuery. Las clases de consulta proporcionan métodos usados para construir una consulta de datos a recuperar de los servicios GData. Los métodos incluyen getters y setters como setUpdatedMin(), setStartIndex(), y getPublishedMin(). Las clases de consulta también tienen un método para generar una URL que representa la consulta construida -- getQueryUrl(). Alternativamente, el componente de cadena de consulta de la URL puede recuperarse usando el método getQueryString().

  • Clases de feed - heredan de Zend_Gdata_App_Feed. Estas también incluyen otras clases como Zend_Gdata_Feed, Zend_Gdata_Spreadsheets_SpreadsheetFeed, y Zend_Gdata_Spreadsheets_ListFeed. Estas clases representan feeds de entradas recuperadas de los servicios. Se usan principalmente para recuperar datos devueltos por los servicios.

  • Clases de entrada - heredan de Zend_Gdata_App_Entry. Estas también incluyen otras clases como Zend_Gdata_Entry, y Zend_Gdata_Spreadsheets_ListEntry. Estas clases representan entradas recuperadas de servicios o usadas para construir datos que se enviarán a los servicios. Además de poder establecer las propiedades de una entrada (como el valor de una celda de hoja de cálculo), puede usar un objeto de entrada para enviar solicitudes de actualización o eliminación a un servicio. Por ejemplo, puede llamar a $entry->save() para guardar los cambios realizados en una entrada de vuelta al servicio del cual se originó la entrada, o $entry->delete() para eliminar una entrada del servidor.

  • Otras clases de modelo de datos - heredan de Zend_Gdata_App_Extension. Estas incluyen clases como Zend_Gdata_App_Extension_Title (representando el elemento XML atom:title), Zend_Gdata_Extension_When (representando el elemento XML gd:when usado por el "Kind" de evento GData), y Zend_Gdata_Extension_Cell (representando el elemento XML gs:cell usado por Google Spreadsheets). Estas clases se usan puramente para almacenar los datos recuperados de los servicios y para construir los datos que se enviarán a los servicios. Estas incluyen getters y setters como setText() para establecer el nodo de texto hijo de un elemento, getText() para recuperar el nodo de texto de un elemento, getStartTime() para recuperar el atributo de hora de inicio de un elemento When, y otros métodos similares. Las clases de modelo de datos también incluyen métodos como getDOM() para recuperar una representación DOM del elemento y todos sus hijos y transferFromDOM() para construir una representación de modelo de datos de un árbol DOM.

37.1.2. Interactuando con los servicios de Google

Los servicios de Google data se basan en el Atom Publishing Protocol (APP) y el formato de sindicación Atom. Para interactuar con los servicios APP o de Google usando el componente Zend_Gdata, necesita usar las clases de servicio como Zend_Gdata_App, Zend_Gdata, Zend_Gdata_Spreadsheets, etc. Estas clases de servicio proporcionan métodos para recuperar datos de los servicios como feeds, insertar nuevas entradas en feeds, actualizar entradas y eliminar entradas.

Nota: Un ejemplo completo de trabajo con Zend_Gdata está disponible en el directorio demos/Zend/Gdata. Este ejemplo puede ejecutarse desde la línea de comandos, pero los métodos contenidos en él son fácilmente portables a una aplicación web.

37.1.3. Obtener instancias de clases Zend_Gdata

Los estándares de nomenclatura de Zend Framework requieren que todas las clases se nombren según la estructura de directorios en la que están ubicadas. Por ejemplo, las extensiones relacionadas con Spreadsheets se almacenan en: Zend/Gdata/Spreadsheets/Extension/... y, como resultado de esto, se nombran Zend_Gdata_Spreadsheets_Extension_.... ¡Esto provoca mucha escritura si intenta construir una nueva instancia de un elemento de celda de hoja de cálculo!

Hemos implementado un método de fábrica mágico en todas las clases de servicio (como Zend_Gdata_App, Zend_Gdata, Zend_Gdata_Spreadsheets) que debería facilitar mucho la construcción de nuevas instancias de clases de modelo de datos, consulta y otras. Esta fábrica mágica está implementada usando el método mágico __call() para interceptar todos los intentos de llamar a $service->newXXX(arg1, arg2, ...). Según el valor de XXX, se realiza una búsqueda en todos los 'paquetes' registrados para la clase deseada. Aquí hay algunos ejemplos:

$ss = new Zend_Gdata_Spreadsheets();

// creates a Zend_Gdata_App_Spreadsheets_CellEntry
$entry = $ss->newCellEntry();

// creates a Zend_Gdata_App_Spreadsheets_Extension_Cell
$cell = $ss->newCell();
$cell->setText('My cell value');
$cell->setRow('1');
$cell->setColumn('3');
$entry->cell = $cell;

// ... $entry can then be used to send an update to a Google Spreadsheet

Cada clase de servicio en el árbol de herencia es responsable de registrar los 'paquetes' (directorios) apropiados que deben buscarse al llamar al método de fábrica mágico.

37.1.4. Autenticación del cliente de Google Data

La mayoría de los servicios de Google Data requieren que las aplicaciones cliente se autentiquen contra el servidor de Google antes de acceder a datos privados, o guardar o eliminar datos. Hay dos implementaciones de autenticación para Google Data: AuthSub y ClientLogin. Zend_Gdata ofrece interfaces de clase para ambos métodos.

La mayoría de los demás tipos de consultas contra servicios de Google Data no requieren autenticación.

37.1.5. Dependencias

Zend_Gdata hace uso de Zend_Http_Client para enviar solicitudes a google.com y obtener resultados. La respuesta a la mayoría de las solicitudes de Google Data se devuelve como una subclase de las clases Zend_Gdata_App_Feed o Zend_Gdata_App_Entry.

Zend_Gdata asume que su aplicación PHP se ejecuta en un host que tiene una conexión directa a Internet. El cliente Zend_Gdata funciona contactando con los servidores de Google Data.

37.1.6. Crear un nuevo cliente Gdata

Cree un nuevo objeto de la clase Zend_Gdata_App, Zend_Gdata, o una de las subclases disponibles que ofrecen métodos auxiliares para el comportamiento específico del servicio.

El único parámetro opcional del constructor de Zend_Gdata_App es una instancia de Zend_Http_Client. Si no pasa este parámetro, Zend_Gdata crea un objeto Zend_Http_Client por defecto, que no tendrá credenciales asociadas para acceder a feeds privados. Especificar el objeto Zend_Http_Client también le permite pasar opciones de configuración a ese objeto cliente.

$client = new Zend_Http_Client();
$client->setConfig( ...options... );

$gdata = new Zend_Gdata($client);

A partir de Zend Framework 1.7, se ha añadido soporte para el versionado de protocolo. Esto permite que el cliente y el servidor admitan nuevas funciones manteniendo la compatibilidad hacia atrás. Aunque la mayoría de los servicios gestionarán esto por usted, si crea una instancia de Zend_Gdata directamente (a diferencia de una de sus subclases), es posible que necesite especificar la versión de protocolo deseada para acceder a cierta funcionalidad del servidor.

$client = new Zend_Http_Client();
$client->setConfig( ...options... );

$gdata = new Zend_Gdata($client);
$gdata->setMajorProtocolVersion(2);
$gdata->setMinorProtocolVersion(null);

Vea también las secciones sobre autenticación para métodos que crean un objeto Zend_Http_Client autenticado.

37.1.7. Parámetros de consulta comunes

Puede especificar parámetros para personalizar consultas con Zend_Gdata. Los parámetros de consulta se especifican usando subclases de Zend_Gdata_Query. La clase Zend_Gdata_Query incluye métodos para establecer todos los parámetros de consulta usados en los servicios GData. Los servicios individuales, como Spreadsheets, también proporcionan clases de consulta para definir parámetros personalizados para el servicio y feeds concretos. Spreadsheets incluye una clase CellQuery para consultar el feed Cell y una clase ListQuery para consultar el feed List, ya que diferentes parámetros de consulta son aplicables a cada uno de esos tipos de feed. Los parámetros de GData a nivel general se describen a continuación.

  • El parámetro q especifica una consulta de texto completo. El valor del parámetro es una cadena.

    Establezca este parámetro con la función setQuery().

  • El parámetro alt especifica el tipo de feed. El valor del parámetro puede ser atom, rss, json, o json-in-script. Si no especifica este parámetro, el tipo de feed predeterminado es atom. NOTA: Solo la salida del formato de feed atom puede procesarse usando Zend_Gdata. El Zend_Http_Client podría usarse para recuperar feeds en otros formatos, usando URLs de consulta generadas por la clase Zend_Gdata_Query y sus subclases.

    Establezca este parámetro con la función setAlt().

  • El parámetro maxResults limita el número de entradas en el feed. El valor del parámetro es un entero. El número de entradas devueltas en el feed no superará este valor.

    Establezca este parámetro con la función setMaxResults().

  • El parámetro startIndex especifica el número ordinal de la primera entrada devuelta en el feed. Las entradas anteriores a este número se omiten.

    Establezca este parámetro con la función setStartIndex().

  • Los parámetros updatedMin y updatedMax especifican límites en la fecha de la entrada. Si especifica un valor para updatedMin, no se incluirán en el feed las entradas actualizadas antes de la fecha que especifique. Del mismo modo, no se incluirán las entradas actualizadas después de la fecha especificada por updatedMax.

    Puede usar marcas de tiempo numéricas, o una variedad de representaciones de cadena de fecha/hora como valor para estos parámetros.

    Establezca este parámetro con las funciones setUpdatedMin() y setUpdatedMax().

Hay una función get*() por cada función set*().

$query = new Zend_Gdata_Query();
$query->setMaxResults(10);
echo $query->getMaxResults();   // returns 10

La clase Zend_Gdata también implementa métodos "mágicos" de getter y setter, por lo que puede usar el nombre del parámetro como un miembro virtual de la clase.

$query = new Zend_Gdata_Query();
$query->maxResults = 10;
echo $query->maxResults;        // returns 10

Puede borrar todos los parámetros con la función resetParameters(). Esto es útil si reutiliza un objeto Zend_Gdata para varias consultas.

$query = new Zend_Gdata_Query();
$query->maxResults = 10;
// ...get feed...

$query->resetParameters();      // clears all parameters
// ...get a different feed...

37.1.8. Obtener un feed

Use la función getFeed() para recuperar un feed desde una URI especificada. Esta función devuelve una instancia de la clase especificada como segundo argumento de getFeed, que por defecto es Zend_Gdata_Feed.

$gdata = new Zend_Gdata();
$query = new Zend_Gdata_Query(
        'http://www.blogger.com/feeds/blogID/posts/default');
$query->setMaxResults(10);
$feed = $gdata->getFeed($query);

Vea las secciones posteriores para funciones especiales en cada clase auxiliar para los servicios de Google Data. Estas funciones le ayudan a obtener feeds desde la URI apropiada para el servicio respectivo.

37.1.9. Trabajar con feeds de múltiples páginas

Al recuperar un feed que contiene un gran número de entradas, el feed puede dividirse en varias "páginas" más pequeñas de feeds. Cuando esto ocurre, cada página contendrá un enlace a la siguiente página en la serie. Se puede acceder a este enlace llamando a getLink('next'). El siguiente ejemplo muestra cómo recuperar la siguiente página de un feed:

function getNextPage($feed) {
    $nextURL = $feed->getLink('next');
    if ($nextURL !== null) {
        return $gdata->getFeed($nextURL);
    } else {
        return null;
    }
}

Si prefiere no trabajar con páginas en su aplicación, pase la primera página del feed a Zend_Gdata_App::retrieveAllEntriesForFeed(), que consolidará todas las entradas de cada página en un único feed. Este ejemplo muestra cómo usar esta función:

$gdata = new Zend_Gdata();
$query = new Zend_Gdata_Query(
        'http://www.blogger.com/feeds/blogID/posts/default');
$feed = $gdata->retrieveAllEntriesForFeed($gdata->getFeed($query));

Tenga en cuenta al llamar a esta función que puede tardar mucho tiempo en completarse en feeds grandes. Es posible que necesite aumentar el límite de tiempo de ejecución de PHP llamando a set_time_limit().

37.1.10. Trabajar con datos en feeds y entradas

Después de recuperar un feed, puede leer los datos del feed o las entradas contenidas en el feed usando los accesores definidos en cada una de las clases de modelo de datos o los accesores mágicos. Aquí hay un ejemplo:

$client = Zend_Gdata_ClientLogin::getHttpClient($user, $pass, $service);
$gdata = new Zend_Gdata($client);
$query = new Zend_Gdata_Query(
        'http://www.blogger.com/feeds/blogID/posts/default');
$query->setMaxResults(10);
$feed = $gdata->getFeed($query);
foreach ($feed as $entry) {
    // using the magic accessor
    echo 'Title: ' . $entry->title->text;
    // using the defined accessors
    echo 'Content: ' . $entry->getContent()->getText();
}

37.1.11. Actualizar entradas

Después de recuperar una entrada, puede actualizar esa entrada y guardar los cambios de vuelta en el servidor. Aquí hay un ejemplo:

$client = Zend_Gdata_ClientLogin::getHttpClient($user, $pass, $service);
$gdata = new Zend_Gdata($client);
$query = new Zend_Gdata_Query(
        'http://www.blogger.com/feeds/blogID/posts/default');
$query->setMaxResults(10);
$feed = $gdata->getFeed($query);
foreach ($feed as $entry) {
    // update the title to append 'NEW'
    echo 'Old Title: ' . $entry->title->text;
    $entry->title->text = $entry->title->text . ' NEW';

    // update the entry on the server
    $newEntry = $entry->save();
    echo 'New Title: ' . $newEntry->title->text;
}

37.1.12. Publicar entradas en los servidores de Google

El objeto Zend_Gdata tiene una función insertEntry() con la que puede subir datos para guardar nuevas entradas en los servicios de Google Data.

Puede usar las clases de modelo de datos de cada servicio para construir la entrada apropiada que se publicará en los servicios de Google. La función insertEntry() aceptará un hijo de Zend_Gdata_App_Entry como datos para publicar en el servicio. El método devuelve un hijo de Zend_Gdata_App_Entry que representa el estado de la entrada tal como fue devuelto por el servidor.

Alternativamente, podría construir la estructura XML de una entrada como una cadena y pasar la cadena a la función insertEntry().

$gdata = new Zend_Gdata($authenticatedHttpClient);

$entry = $gdata->newEntry();
$entry->title = $gdata->newTitle('Playing football at the park');
$content =
    $gdata->newContent('We will visit the park and play football');
$content->setType('text');
$entry->content = $content;

$entryResult = $gdata->insertEntry($entry,
        'http://www.blogger.com/feeds/blogID/posts/default');

echo 'The <id> of the resulting entry is: ' . $entryResult->id->text;

Para publicar entradas, debe estar usando un Zend_Http_Client autenticado que haya creado usando las clases Zend_Gdata_AuthSub o Zend_Gdata_ClientLogin.

37.1.13. Eliminar entradas en los servidores de Google

Opción 1: El objeto Zend_Gdata tiene una función delete() con la que puede eliminar entradas de los servicios de Google Data. Pase el valor de la URL de edición de una entrada de feed al método delete().

Opción 2: Alternativamente, puede llamar a $entry->delete() en una entrada recuperada de un servicio de Google.

$gdata = new Zend_Gdata($authenticatedHttpClient);
// a Google Data feed
$feedUri = ...;
$feed = $gdata->getFeed($feedUri);
foreach ($feed as $feedEntry) {
    // Option 1 - delete the entry directly
    $feedEntry->delete();
    // Option 2 - delete the entry by passing the edit URL to
    // $gdata->delete()
    // $gdata->delete($feedEntry->getEditLink()->href);
}

Para eliminar entradas, debe estar usando un Zend_Http_Client autenticado que haya creado usando las clases Zend_Gdata_AuthSub o Zend_Gdata_ClientLogin.