2016-01-08 14 views
17

Używam API kalendarza Google, aby wyświetlić uproszczoną wersję kalendarza mojej firmy. Chciałbym, aby ktokolwiek zobaczył moją wersję kalendarza na mojej stronie. Obecnie tylko ja mogę wyświetlać stronę kalendarza i jeśli miałbym udostępnić adres URL strony każdemu, to nie działa - nie może wyświetlić niczego.JavaScript Google Calendar API Ustawianie kalendarza na publiczne

Używam kod zaczynający Google tutaj:

var CLIENT_ID = 'MYID**'; 
var SCOPES = ["https://www.googleapis.com/auth/calendar.readonly"]; 

function checkAuth() { 
    gapi.auth.authorize(
     { 
     'client_id': CLIENT_ID, 
     'scope': SCOPES, 
     'immediate': true 
     }, handleAuthResult); 
} 

function handleAuthResult(authResult) { 
    var authorizeDiv = document.getElementById('authorize-div'); 
    loadCalendarApi(); 
} 

function handleAuthClick(event) { 
    gapi.auth.authorize({ 
     client_id: CLIENT_ID, 
     scope: SCOPES, 
     immediate: false 
    }, handleAuthResult); 
    return false; 
} 

function loadCalendarApi() { 
    gapi.client.load('calendar', 'v3', listUpcomingEvents); 
} 

function listUpcomingEvents() { 
    var request = gapi.client.calendar.events.list({ 
     'calendarId': '[email protected]', 
     'timeMin': '2011-06-03T10:00:00-07:00', 
     'showDeleted': false, 
     'singleEvents': true, 
     'maxResults': 1000, 
     'orderBy': 'startTime' 
}); 

Ale nie wydaje się znaleźć gdzie aby ten kalendarz publicznie. Dwa przykłady na stackoverflow nie wyjaśniają wiele i nie mogę połączyć niczego w Dokumentacji API Google.

+0

Jeśli nie znajdę rozwiązania w sposób, w jaki to robię, będę uciekał się do przechowywania wszystkich informacji w moim baza danych i wyciąganie z niej informacji – ntgCleaner

+0

Nie można pobrać danych kalendarza z prywatnym kluczem API do serwera, przetworzyć go, a następnie przekazać serwer do swojego JS? Nie potrzebowałbyś nawet bazy danych (chociaż byłaby bardziej wydajna). –

Odpowiedz

0

Zasób Calendars nie ma żadnych atrybutów dotyczących widoczności. Ponieważ jednak używasz Events list, jego zasób ma atrybut widoczności, w którym możesz odfiltrować (choć ręcznie) elementy, które są publiczne.

publicznegoThe event is public and event details are visible to all readers of the calendar.

+0

Sprawdziłem, próbując upublicznić cały kalendarz i wciąż nie uzyskać wyników. – ntgCleaner

1

Jeśli tylko chcesz udostępnić swój kalendarz, można zrobić to publiczny, a następnie udostępnianie kalendarza do każdego. Oto jak.

Aby upublicznić Twój kalendarz, wykonaj czynności opisane na tej stronie internetowej: https://support.google.com/calendar/answer/37083?hl=en.

aby Twój kalendarz publiczny

  1. Na komputerze otwórz Kalendarz Google.

  2. W prawym górnym rogu kliknij przycisk Ustawienia przycisk ustawiania biegów> Ustawienia.

  3. Otwórz kartę Kalendarze.

  4. Kliknij nazwę kalendarza, który chcesz udostępnić.

  5. Otwórz kartę Udostępnij ten kalendarz.

  6. Zaznacz opcję Udostępnij ten kalendarz publicznie.

  7. Jeśli nie chcesz, aby inne osoby przeglądały szczegóły Twoich wydarzeń, wybierz Zobacz tylko wolny/zajęty (ukryj szczegóły).

  8. Kliknij Zapisz.

a następnie można udostępnić Ci kalendarz z iframe w was opcji kalendarzowych. https://support.google.com/calendar/answer/41207?hl=en

HTML kalendarza na swojej stronie

  1. Na komputerze otwórz Kalendarz Google. Kod możesz umieścić w swojej witrynie tylko z komputera, a nie aplikacji mobilnej.

  2. W prawym górnym rogu kliknij przycisk Ustawienia przycisk ustawiania biegów> Ustawienia.

  3. Otwórz kartę Kalendarze.

  4. Kliknij nazwę kalendarza, który chcesz umieścić.

  5. W sekcji Osadź ten kalendarz skopiuj wyświetlony kod iframe.

  6. Otwórz edytor witryny, a następnie wklej ten kod w miejscu, w którym chcesz wyświetlić kalendarz.

+0

Niestety, nie szukam GoogleFock pod klucz iFrame. Zastanawiam się, jak można to zrobić za pomocą ich API. – ntgCleaner

+0

Powinieneś być w stanie użyć adresu URL wygenerowanego z instrukcji, aby upublicznić dostęp do kalendarza z interfejsu API. – kgiff

0

Nie trzeba, aby rozpocząć proces autoryzacji OAuth 2.0 (która jest nieaktualna) jako przykład robi. W rzeczywistości możesz wczytać kalendarz przy użyciu klucza API przeglądarki, a identyfikator kalendarza:

Powiązane problemy