2012-05-30 2 views
1

У меня есть относительно простая задача, которую я пытаюсь выполнить с помощью Google Calendar v3 API, но я продолжаю работать с 404 ошибками. Мне нужно только получить доступ к одному календарю (принадлежащему моему клиенту) и получить данные о событиях только для чтения через Javascript (просто используя протокол с вызовом Ajax), поэтому я стараюсь избегать использования аутентификации.Google Calendar API v3 404 для событий

Я сделал календарь общедоступным, перейдя в настройки общего доступа к календарю, нажав «Поделиться этим календарем с другими», а затем выберите «Сделать этот календарь общедоступным». Однако единственным вариантом, который у меня есть для публики, является «Только просмотр/скрыть подробности).»

Поняв, что я редактировал каждое событие конкретно установить тип к„общественности.“

Теперь я могу получить EventList из календаря ресурса, но есть только несколько деталей для каждого элемента массива (см. ниже). И когда я пытаюсь получить доступ к отдельному событию, я получаю 404.

Пробудившись с базовым тестовым календарем, я вполне уверен, что настройки обмена календарями являются проблемой. Основное различие между календарем моего клиента и используемым календарем тестирования заключается в том, что его календарь является частью учетной записи Google Apps для бизнеса, я совершенно уверен.

Есть ли какой-либо параметр в календаре, который я могу редактировать, чтобы заставить API работать без необходимости использовать auth для доступа к данным? Или, есть ли опция в настройках бизнес-приложений, с которой я могу изменить свой клиент? Опять же, я говорю только о выполнении запросов GET в одном конкретном календаре с использованием Javascript, поэтому проверка подлинности нежелательна.

Здесь действительно нет кода, который я могу показать здесь, потому что я просто захватываю данные через URI; У меня такая же проблема (404) при использовании инструмента explorer в документах API. Однако, как и следовало ожидать, при аутентификации с помощью этого инструмента проводника события появляются без проблем.

Sample элемент из EventList:

 
    { 
    "kind": "calendar#event", 
    "id": "(idremoved)", 
    "status": "confirmed", 
    "updated": "2012-05-29T21:06:42.000Z", 
    "start": { 
    "dateTime": "2012-06-18T19:00:00-05:00" 
    }, 
    "end": { 
    "dateTime": "2012-06-18T21:00:00-05:00" 
    }, 
    "visibility": "public" 
    } 

ответ

0

Я использую следующие для чтения в Google Apps для календарей образования, которая имеет те же API и безопасности ограничения как для бизнеса.

После того, как публичный адрес календаря, я решил разобрать полную версию календаря вместо базовой версии:

https://www.google.com/calendar/feeds/your_calendar_id_here%40gmail.com/public/full

от того, что я видел, если ваш календарь является общедоступным, ваши события будет также. Вы захотите убедиться, что публика для вашего календаря доступна в вашем браузере, просто вставив URL-адрес. Убедитесь, что события также публичны, делая это. Убедитесь, что календарь открыт, но флажок «Предоставить только мою информацию о занятости/скрытии» (Скрыть подробности) »не установлен

+0

Спасибо. Это было то, что я и в конце концов нашел, хотя разочаровывает то, что публикация отдельных событий не отменяет настройки свободного времени в календаре. Мое понимание заключалось в том, что целью было публиковать отдельные события. В итоге мы поместили календарь в новую учетную запись за пределами учетной записи Google App для этого бизнеса. – tmo256

+0

Кстати, вы используете API v2 или v3? – tmo256

+0

api v2 Это, вероятно, будет перегрузка javascript, но вы можете проверить мой модуль агрегации календаря здесь: events.ualberta.ca heres js: http: //events.ualberta.ca/WebResource.axd? D = QEgZza-a_z9cErHNf2dys-hrCC5NOPQAuxf7j43AnXrrIp- GXXosYTb3wCbePFNkzzrhRjX_1R8AWjdOKufibQ45t4s7DhPkp95O98hVgGNNOSwkM0vHGSr8jgROpBVZ-zQFzQ2 & t = 634739858576588781 –