Pregunta

Primeros súper frustrado tratando de conseguir este trabajo. Básicamente se trata de un sitio (x10hosting.com) donde no puedo incluir el Zend Framework gdata, por lo que estoy tratando de utilizar la API de datos de Google con PHP cURL para acceder a ella. Lo más que he podido hacer es devolver una lista de las hojas de trabajo suministradas nombres de usuario, el uso de este script:

<?php

// Construct an HTTP POST request
$clientlogin_url = "https://www.google.com/accounts/ClientLogin";
$clientlogin_post = array(
    "accountType" => "HOSTED_OR_GOOGLE",
    "Email" => "", //username
    "Passwd" => '',  //password
    "service" => "writely",
    "source" => "your application name"
);

// Initialize the curl object
$curl = curl_init($clientlogin_url);

// Set some options (some for SHTTP)
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $clientlogin_post);
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

// Execute
$response = curl_exec($curl);

// Get the Auth string and save it
preg_match("/Auth=([a-z0-9_\-]+)/i", $response, $matches);
$auth = $matches[1];

echo "The auth string is: ".$auth;
// Include the Auth string in the headers
// Together with the API version being used
$headers = array(
    "Authorization: GoogleLogin auth=".$auth,
    "GData-Version: 3.0",
);

// Make the request
$key = ;
curl_setopt($curl, CURLOPT_URL, "https://spreadsheets1.google.com/ccc?key=$key");
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_POST, false);

$response = curl_exec($curl);
curl_close($curl);
var_dump($response);
// Parse the response
$response = simplexml_load_string($response);

// Output data
foreach($response->entry as $file)
{
    echo "File: " . $file->title . "<br />";
    echo "Type: " . $file->content["type"] . "<br />";
    echo "Author: " . $file->author->name . "<br /><br />";
}
?>

Pero no puedo encontrar una manera de utilizar esto para el acceso una hoja de trabajo específica. Por favor ayuda, esto me está volviendo loco.

EDIT: Siguiendo el consejo de DASPRiD me da este error ->

  

Aviso:   Zend_Loader :: :: Zend_Loader registerAutoload está en desuso a partir de 1.8.0 y será   eliminado con 2.0.0; utilizar   Zend_Loader_Autoloader lugar en   /home/c3webdev/public_html/library/Zend/Loader.php   en la línea 266

     

Advertencia:   require_once (Zend / cargadora / Autoloader.php)   [Function.require una vez]: no pudo   flujo abierto: No existe el fichero o directorio   en   /home/c3webdev/public_html/library/Zend/Loader.php   en la línea 267

     

Fatal error: require_once ()   [Function.require]: apertura Error   required 'Zend / cargador / Autoloader.php'   (Include_path = '/ home / c3webdev / public_html / biblioteca:.: / Usr / lib / php: / usr / local / lib / php')   en   /home/c3webdev/public_html/library/Zend/Loader.php   en la línea 267

¿Fue útil?

Solución

Una consulta a la siguiente dirección URL que debe enumerar todas las hojas de una hoja de cálculo específica:

http://spreadsheets.google.com/feeds/worksheets/**spreadsheetKey**/private/full

Para instalar y utilizar Zend_Gdata, haga lo siguiente:

Descarga el último paquete ( http: //framework.zend.com/releases/ZendGdata-1.10.7/ZendGdata-1.10.7.tar.gz ) desde el sitio web de Zend Framework. Ahora vamos a suponer la siguiente estructura directiva:

  • /index.php (su archivo principal)
  • / / Zend (extracto de la biblioteca carpeta / Zend aquí) biblioteca

En su index.php, haga lo siguiente:

set_include_path(
    dirname(__FILE__) . '/library'
    . PATH_SEPARATOR . get_include_path()
);

require_once 'Zend/Loader.php';

Zend_Loader::registerAutoload();

Ahora es suficiente con seguir el manual ( http: // marco .zend.com / manual / es / zend.gdata.spreadsheets.html ). Interesante para los que pueden ser los temas de "conseguir una lista de hojas de cálculo" para la creación de la instancia de servicio y "conseguir una lista de hojas de trabajo" en busca de todas las hojas de una hoja de cálculo específica.

Actualización:

Parece que el paquete Zend_Gdata no está correctamente embalado. Voy a señalar que para obtener el paquete fijo. Mientras tanto, le sugiero que descargar el paquete de Zend Framework completa. Para utilizar el cargador automático en 1.8 correctamente, haga lo siguiente en su lugar:

require_once 'Zend/Loader/Autoloader.php';

Zend_Loader_Autoloader::getInstance();

Otros consejos

Una vez que la lista de hojas de trabajo suministradas por los que el usuario puede analizar a través de obtener los datos (eso es lo que quiere la derecha? Los datos de la hoja?)

Como se mencionó anteriormente esta es la forma de obtener las hojas de cálculo disponible

http://spreadsheets.google.com/feeds/worksheets/<spreadsheet-key>/private/full

A continuación, desde allí se puede obtener la dirección URL a una hoja de cálculo específica y luego desde allí se puede obtener los datos de ese

Lista devuelve los datos con partidas correspondientes

https://spreadsheets.google.com/feeds/list/<spreadsheet-key>/<worksheet-id>/private/basic

Células lo devuelve con celdas definidas (A1, C23 etc.)

https://spreadsheets.google.com/feeds/cells/0<spreadsheet-key>/<worksheet-id>/private/basic

Aquí hay más información sobre la de cálculo de Google API referencia

Para una solución muy fácil alternativa sin Zend y sin API de Google esto puede también ayuda.

Puede publicar su hoja de cálculo de Google como csv en la web (con una URL privada) y simplemente acceder a él por fopen / fgetcsv

https://stackoverflow.com/a/18106727/1300348

Tenga en cuenta que no hay autenticación ... así que quien tiene su URL tiene sus datos, por lo tanto, esto podría no ser la solución correcta para los archivos en los que hay contraseñas incluidos. Pero tal vez ayude a alguien con un problema similar.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top