Cómo guardar los datos en una hoja de cálculo unpublic Google usando PHP sin biblioteca Zend Gdata?
-
20-09-2019 - |
Pregunta
¿Cómo puedo guardar datos en la hoja de cálculo de Google unpublic en PHP sin utilizar Zend Gdata lib ? No puedo utilizar bibliotecas de Zend, como se muestra en google tutoriales, ya que el servidor php en el que estoy ejecutando el script es php v. 5.0.4 . He intentado encontrar una solución utilizando rizo, pero no podemos omitir el problema con la autenticación cuando el doc es unpublic. ¿Cómo puedo hacerlo? Si alguien lo ha intentado, por favor comparta la solución.
Solución
He descubierto solución utilizando rizo y mediante la creación de una forma de hoja de cálculo de la Google. Para hojas de cálculo preparado usted tiene que crear una forma, sin opciones: Requerir inicio de sesión para ver este formulario y Recopilar automáticamente el nombre de usuario encuestado . A continuación, comprobar, utilizando F. E. firebug, el URI y enviar los datos de forma de correos y utilizarlo para siguiente secuencia de comandos:
#prepare post data
$fields = array('backupCache' => '',
'entry.0.single'=>urlencode($data['name']),
'entry.1.single'=>urlencode($data['surname']),
'pageNumber'=>urlencode(0),
'submit'=>'Submit');
$fields_string = '';
foreach($fields as $key=>$value) {
$fields_string .= $key.'='.$value.'&';
}
rtrim($fields_string,"& ");
$fields_string = substr($fields_string, 0, strlen($fields_string)-1);
$ch = curl_init();
#set curl_setopt for your preferences
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
curl_setopt($ch, CURLOPT_POST, count($fields));
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields_string);
#set proper form uri
curl_setopt($ch, CURLOPT_URL, $formUri);
curl_setopt($ch, CURLOPT_TIMEOUT, 120);
$res = curl_exec($ch);
curl_close($ch);
Puede que no sea la solución más perfecta, pero funciona. :)
Otros consejos
Aquí es una clase PHP orientado a objetos para enviar datos a una hoja de cálculo de Google Docs - http://code.google.com/p/php-form-builder-class/source/browse/trunk/includes/class .spreadsheet.php? Spec = svn384 & r = 384
Curl se utiliza en lugar de lib GData de Zend. Se puede encontrar una implementación de ejemplo a continuación. Recuerde reemplazar los ajustes de prueba ( "my_google_email", "my_google_password", etc) con su información específica.
$doc = new spreadsheet();
$doc->authenticate("my_google_email", "my_google_password");
$doc->setSpreadsheet("my_spreadsheet_title");
$doc->setWorksheet("my_worksheet_title");
$my_data = array("First Name" => "John", "Last Name" => "Doe");
$doc->add($my_data);
Las claves de la matriz asociativa que se pasan al método add necesitan para que coincida con los títulos de las columnas de las hojas de cálculo que utiliza para recopilar los datos.