Как сохранить данные в непубличной электронной таблице Google с помощью PHP без библиотеки Zend Gdata?

StackOverflow https://stackoverflow.com/questions/1525502

  •  20-09-2019
  •  | 
  •  

Вопрос

Как сохранить данные в непубличной электронной таблице Google в PHP без использования библиотеки Zend Gdata?Я не могу использовать библиотеки Zend, как показано в руководствах Google, потому что PHP-сервер, на котором я запускаю скрипт, php в.5.0.4.Я пытался найти решение с помощью cUrl, но не могу обойти проблему с аутентификацией, когда документ не является общедоступным.Как мне это сделать?Если кто-то пробовал, поделитесь решением.

Это было полезно?

Решение

Я нашел решение, используя Curl и создав форму для электронной таблицы Google.Для готовой таблицы вам необходимо создать форму без опций: Требуется вход в систему для просмотра этой формы и Автоматически собирать имя пользователя респондента.Затем проверьте, используя ф.е.firebug, форму для публикации URI и публикации данных и используйте ее для следующего сценария:

#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);

Возможно, это не самое идеальное решение, но оно работает.:)

Другие советы

Вот объектно-ориентированный класс PHP для отправки данных в электронную таблицу Документов Google: http://code.google.com/p/php-form-builder-class/source/browse/trunk/includes/class.spreadsheet.php?spec=svn384&r=384

cUrl используется вместо библиотеки Zend GData.Ниже вы можете найти пример реализации.Не забудьте заменить настройки теста («my_google_email», «my_google_password» и т. д.) на вашу конкретную информацию.

$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);

Ключи ассоциативного массива, передаваемые в метод add, должны соответствовать заголовкам столбцов таблиц, которые вы используете для сбора данных.

Вы можете получить доступ к API GData, используя обычные HTTP-запросы;библиотека просто облегчит вам эту задачу.По сути, вы просто переписываете те фрагменты библиотеки, которые хотите использовать.

См. протокольная документация.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top