Аутентификация и использование таблицы Google в качестве базы данных для веб-приложения - PullRequest
1 голос
/ 07 июня 2011

Вокруг этой темы, похоже, много вопросов, но ни один из них не отвечает на мой вопрос.У меня есть простой веб-сайт с формой регистрации, и когда пользователи вводят свою электронную почту, я хочу добавить ее в качестве новой строки в электронной таблице Google, которую я уже настроил.Я не хочу, чтобы пользователь проходил аутентификацию или даже знал об этой таблице.Как пройти аутентификацию, чтобы я мог начать использовать Google API?Код / псевдокод будет принята с благодарностью!Вот несколько примеров, которые не отвечают на мой вопрос:

Использование электронной таблицы Google в качестве базы данных для приложений

Электронная таблица Google в виде базы данных для веб-приложений

Ответы [ 2 ]

2 голосов
/ 07 июля 2011

Вот ссылка на библиотеку для доступа к таблицам Google:

https://github.com/EastCloud/node-spreadsheets

Примечание: я на самом деле не использовал эту библиотеку

0 голосов
/ 25 августа 2011

Вам нужно будет использовать PHP и библиотеку Zend GData.

Когда вы публикуете свою форму в своем PHP-скрипте, вам нужно собрать все переменные в ассоциативный массив, который вы затем передаете вметод insertRow в Zend_Gdata_Spreadsheets.

Важно отметить, что ваша электронная таблица должна содержать заголовки столбцов, чтобы мой пример работал.Например, имя / фамилия, и важно отметить, что когда вы нацеливаетесь на эти заголовки столбцов в скрипте, они должны быть полностью строчными и лишенными пробелов, потому что именно так их ожидает электронная таблица.

Вотбазовый пример сценария PHP:

<?php
        $errors = array(); // use this to create an associative array to json encode and send back any errors
        $rowData = array(); // this will be the associative array that gets passed to the insertRow method

        $firstName = $_POST['firstName'];

        if(isset($firstName)){
            $rowData['firstname'] = $firstName; // note the key 'firstname' must equal the column header in your spreadsheet which you are inserting the value into. the column header name key should be all lowercase and not contain spaces regardless of if you have it in the spreadsheet
        }else{
            $errors['firstname'] = '1';
        }

        $lastName = $_POST['lastName'];

        if(isset($lastName)){
            $rowData['lastname'] = $lastName; // note the key 'lastname' must equal the column header in your spreadsheet which you are inserting the value into. the column header name key should be all lowercase and not contain spaces regardless of if you have it in the spreadsheet
        }else{
            $errors['lastname'] = '1';
        }


        set_include_path($_SERVER['DOCUMENT_ROOT'] . '/library/');

        $spreadsheetKey = 'your-spreadsheet-key';
        $worksheetId = 'your-worksheet-id'; // if you only have one worksheet this will be 'od6'

        require_once 'Zend/Loader/Autoloader.php';
        $autoloader = Zend_Loader_Autoloader::getInstance();
        $autoloader->setFallbackAutoloader(true);

        $user = "your-user-name-at-gmail-dot-com";
        $pass = "your-password";

        $service = Zend_Gdata_Spreadsheets::AUTH_SERVICE_NAME;
        $client = Zend_Gdata_ClientLogin::getHttpClient($user, $pass, $service);
        $spreadsheetService = new Zend_Gdata_Spreadsheets($client);

        $query = new Zend_Gdata_Spreadsheets_DocumentQuery();
        $query->setSpreadsheetKey($spreadsheetKey);
        $feed = $spreadsheetService->getWorksheetFeed($query); 

        global $spreadsheetService,$spreadsheetKey,$worksheetId,$rowData;
        $insertedListEntry=$spreadsheetService->insertRow($rowData,$spreadsheetKey,$worksheetId);
        $returnObject['success'] = 'true';
        echo(json_encode($returnObject));
?>

Дайте мне знать, если это работает для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...