Аутентификация Google API - PullRequest
       9

Аутентификация Google API

0 голосов
/ 25 октября 2010

Используя Google Javascript API, я пытаюсь аутентифицировать себя (локально), чтобы создать новое событие в моем календаре.Тем не менее, я получаю сообщение об ошибке (см. Ниже) о том, что мой «следующий» параметр неверен или отсутствует, когда я выполняю часть сценария, связанную с входом в систему.Я отслеживаю данные api интерактивные образцы для «Создать отдельное событие».

Обновление 1: в адресной строке, я вижу «следующее», установите следующий путь:

next=file:///C:/calext/sending_data.html

Разве Google не любит локальные файлы?Обходной путь?

Обновление 2: я попытался запустить файл на своем веб-хосте.Страница запустилась (выдало несколько ошибок), но событие оказалось в моем календаре.Так что ошибка лежит где-то с не любящими локальными файлами.Мысли?

Сообщение об ошибке:

Запрашиваемая страница не может быть отображена.Другой сайт запрашивал доступ к вашей учетной записи Google, но отправил неверный запрос.Свяжитесь с сайтом, который вы пытались использовать, когда получили это сообщение, чтобы сообщить им об ошибке.Далее следует подробное сообщение об ошибке:

Параметр «следующий» был неверным или отсутствовал.

Код моей страницы:

<html>

<head>
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
</head>

<body>

<img src="128.png">

<script type="text/javascript">
var myService;
var feedUrl = "https://www.google.com/calendar/feeds/default/private/full";

google.load("gdata", "1");
google.setOnLoadCallback(getMyFeed); // starts process

// Create a single event example
function doExample()
{
    var calendarService = myService;

    // The default "private/full" feed is used to insert event to the 
    // primary calendar of the authenticated user
    var feedUri = 'http://www.google.com/calendar/feeds/default/private/full';

    // Create an instance of CalendarEventEntry representing the new event
    var entry = new google.gdata.calendar.CalendarEventEntry();

    // Set the title of the event
    entry.setTitle(google.gdata.Text.create('JS-Client: insert event'));

    // Create a When object that will be attached to the event
    var when = new google.gdata.When();

    // Set the start and end time of the When object
    var startTime = google.gdata.DateTime.fromIso8601("2010-10-24T09:00:00.000-05:00");
    var endTime = google.gdata.DateTime.fromIso8601("2010-10-24T10:00:00.000-05:00");
    when.setStartTime(startTime);
    when.setEndTime(endTime);

    // Add the When object to the event 
    entry.addTime(when);

    // Submit the request using the calendar service object
    calendarService.insertEntry(feedUri, entry, handleMyFeed, handleError, google.gdata.calendar.CalendarEventEntry);
}

function handleMyFeed(myResultsFeedRoot)
{
    alert("This feed's title is: " + myResultsFeedRoot.feed.getTitle().getText());
}

function handleError(e)
{
    alert("There was an error!");
    alert(e.cause ? e.cause.statusText : e.message);
}

function getMyFeed()
{
    // Set up my service
    myService = new google.gdata.calendar.CalendarService('GoogleInc-jsguide-1.0');

    // Log me in
    var scope = "https://www.google.com/calendar/feeds/";
    var token = google.accounts.user.login(scope);

    // Create a single event example
    doExample();

    // Get my feed
    myService.getEventsFeed(feedUrl, handleMyFeed, handleError);
}

</script>

</body>
</html>

1 Ответ

0 голосов
/ 25 октября 2010

Я предполагаю, что вы открываете локальный файл, который требует локального файла. По умолчанию file: // URI не могут читать другие file: // URI. Попробуйте добавить этот параметр командной строки, он специально создан, чтобы помочь разработчикам тестировать:

chrome --allow-file-access-from-files

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