Bir Google Calendar bağlama
Bu kılavuz, Google Calendar’ı bir çalışma alanına nasıl bağlayacağınızı gösterir. Bağlantı çalışma alanı başına kurulur: o çalışma alanının etkinliklerini Control Center’a salt okunur olarak eşitler. Tam resim için Takvim ve zamanlama sayfasına bakın.
Hesap bağlama
Bölüm başlığı “Hesap bağlama”- Kenar çubuğunda Takvim’i açın.
- Takvim kenar çubuğunda Takvim hesabı ekle’ye tıklayın. (Aynı bölüm Ayarlar → Çalışma alanı → Profil ve kimlik yolunda, Google Calendar altında da yer alır.)
- Nasıl yetkilendireceğinizi seçin:
- Control Center’ın Google uygulamasını kullan — kurulacak bir şey yok. Yapınız bir tane içeriyorsa varsayılan budur.
- Kendi Google Cloud istemcimi kullan — kendi projenizden bir istemci kimliği ve gizli anahtar yapıştırın (bkz. Kendi Google istemcinizi getirme).
- Google Calendar’ı bağla’ya tıklayın. İletişim kutusu kısa bir kod ve Google’ın cihaz sayfasına bir bağlantı gösterir.
- O sayfayı herhangi bir cihazda açın, kodu girin ve istenen erişimi onaylayın. İletişim kutusu kendiliğinden kapanır ve etkinlikleriniz eşitlenmeye başlar.
Bu alışverişi cihazınız değil sunucu yürütür ve ortaya çıkan yenileme token’ını saklar — kodun özellikle bu uygulamada değil de “herhangi bir cihazda” onaylanmasının nedeni budur.
Hesap yalnızca etkin çalışma alanına bağlanır. Çalışma alanını değiştirin, onun yerine o çalışma alanının takvimlerini görürsünüz.
Bağlantı akışı calendar.readonly ile birlikte e-posta adresinizi ister —
yerleşik uygulama ve yapıştırdığınız istemci için aynı kapsamlar. Control Center
etkinlikleri okur; Google’da etkinlik oluşturmaz, düzenlemez, silmez veya
davetlere yanıt vermez.
Eşitleme nasıl çalışır
Bölüm başlığı “Eşitleme nasıl çalışır”Zamanlamanın sahibi sunucudur: her iki dakikada bir tüm çalışma alanlarının bağlı hesaplarını tarar ve etkinlikleri çalışma alanının veritabanına yazar. İstemciler Google’la hiç konuşmaz — sunucunun yazdıklarını okurlar.
Tarama artımlıdır. Takvim başına ilk geçiş kayan bir pencere çeker (60 gün geriye, 90 gün ileriye) ve Google’ın eşitleme token’ını yakalar; sonraki geçişler bu token’ı sunar ve yalnızca değişenleri alır — iki dakikalık bir tempoyu karşılanabilir kılan da budur. Pencere, her 24 saatte bir ve Google token’ı geçersiz kıldığında tam bir eşitlemeyle yeniden sabitlenir.
Yenileme token’ları sunucu tarafında, sunucunun veri dizinindeki secrets.json
dosyasında yaşar ve yalnızca sahibinin erişebildiği biçimde (0600) yazılır —
işletim sistemi anahtar zincirinde değil ve hiçbir zaman bir istemci cihazında
değil.
Birden çok hesap bağlama
Bölüm başlığı “Birden çok hesap bağlama”Bir çalışma alanı birkaç Google hesabı bağlayabilir (örneğin iş ve kişisel). Her biri için bağlama adımını yineleyin; etkinlikleri aynı ay / hafta / ajanda görünümlerinde birleşir. Her hesap bağımsız olarak eşitlenir ve yenilenir ve her birinin bağlantısı kendi başına kesilebilir.
Süresi dolmuş bir hesabı yeniden bağlama
Bölüm başlığı “Süresi dolmuş bir hesabı yeniden bağlama”Google bir hesabın token’ını kalıcı olarak geçersiz kılarsa (iptal edilmiş veya süresi çoktan dolmuş bir oturum), eşitleme durur ve Control Center takvimde bir Yeniden bağlan banner’ı ile birlikte bir masaüstü bildirimi gösterir. Yeniden bağlan’a tıklayıp yeni bir kodu onaylayın; banner bir sonraki başarılı eşitlemede kaybolur.
Bir hesabın bağlantısını kesme
Bölüm başlığı “Bir hesabın bağlantısını kesme”Takvim kenar çubuğundan (veya Ayarlar → Çalışma alanı → Profil ve kimlik yolundan) hesaptaki Bağlantıyı kes’e tıklayın. Bu işlem, eşitlenmiş etkinliklerini siler ve sunucudaki saklı token’larını temizler.
Headless bir sunucudan bağlanma
Bölüm başlığı “Headless bir sunucudan bağlanma”Grafik arayüzü olmayan bir sunucu, aynı hesabı kendi terminalinden bağlar:
GOOGLE_OAUTH_CLIENT_ID=<id> GOOGLE_OAUTH_CLIENT_SECRET=<secret> \ cc_server calendar connect --data-dir <dir> --workspace <workspace-id>Bir kod ve bir URL yazdırır, onay bekler, ardından token’ları saklar ve bir sonraki taramada eşitler.
Kaynaktan bir derleme hiç Google istemcisi içermez, bu yüzden kimlik ve gizli
anahtar zorunludur — GOOGLE_OAUTH_CLIENT_ID ve GOOGLE_OAUTH_CLIENT_SECRET
değerlerini ayarlayın. --google-client-id diye bir bayrak yoktur (bilinmeyen
bayraklar yok sayılır). Ortam değişkeni çifti olmadan komut, eksik istemci
hatasıyla çıkar.
Kendi Google istemcinizi getirme (çatallar ve kendi barındırma)
Bölüm başlığı “Kendi Google istemcinizi getirme (çatallar ve kendi barındırma)”Yayımlanan derlemeler bir Google istemcisiyle gelir, bu yüzden çoğu kişi buna hiç dokunmaz. Kaynaktan derliyorsanız, kendi sunucunuzu çalıştırıyorsanız veya onay ekranının kendi projenizin adını taşımasını istiyorsanız kendi istemcinizi getirin.
- Google Cloud Console üzerinde Google Calendar API’yi etkinleştirin ve
calendar.readonly,openidileemailkapsamlarını ekleyerek OAuth onay ekranını yapılandırın. Uygulama doğrulanmamışken kendinizi bir test kullanıcısı olarak ekleyin. Onay ekranındacalendar.eventseklemek davetlere yanıt vermeyi etkinleştirmez — Control Center bu kapsamı hiç istemez. - Uygulama türü TV’ler ve sınırlı girdi cihazları olan bir OAuth istemci kimliği oluşturun ve hem istemci kimliğini hem de istemci gizli anahtarını kopyalayın.
- Bunları ya her bağlantıda (iletişim kutusunda Kendi Google Cloud istemcimi kullan’ı seçin) ya da
GOOGLE_OAUTH_CLIENT_IDveGOOGLE_OAUTH_CLIENT_SECRETile sunucu genelinde sağlayın.
Sunucu genelinde tanımlı bir çift, yerleşik olanın yerini her yerde alır — “Control Center’ın Google uygulamasını kullan” seçeneğinin arkasında bile — yani kendi sunucunuzda o seçenek sizin uygulamanızdır.
İstemci gizli anahtarı sunucudan asla ayrılmaz: hiçbir RPC yanıtı onu taşımaz ve sunucunun kendi istemcisi üzerinden bağlanan bir hesap, çiftin bir kopyası yerine bir işaretçi saklar; dolayısıyla onu döndürmek, yeni bir değerle yeniden başlatmaktan ibarettir.
Sorun giderme
Bölüm başlığı “Sorun giderme”| Belirti | Olası neden |
|---|---|
| İletişim kutusu yerleşik bir seçenek sunmuyor | Bu yapım hiçbir Google istemcisi içermiyor (kaynaktan derleme) ya da sunucu çiftin yalnızca bir yarısıyla başlatıldı. Hem kimlik hem de gizli anahtar gereklidir |
Akış başlatılırken invalid_scope |
Calendar, o Cloud projesinde bir cihaz kodu istemcisi için izinli değildir. Bunun yerine loopback ya da web istemcisi olan bir proje kullanın |
Google’dan invalid_client |
İstemci, TV’ler ve sınırlı girdi cihazları türünde bir istemci değil ya da kimlik ile gizli anahtar farklı istemcilere ait |
| Onay başarılı ama eşitleme boş | Hesabınız onay ekranında bir test kullanıcısı değil ya da calendar.readonly verilmedi |
| Kod, siz onaylamadan önce süresi doluyor | Cihaz kodları kısa ömürlüdür. Yeni bir kod için bağlantıyı yeniden başlatın |
| Bir davete yanıt verirken “Yanıtınız güncellenemedi” | Beklenen bir durumdur: bağlantı akışı calendar.events kapsamını hiç istemez |
| Eşitleme, sunucu günlüğünde bir yenileme uyarısıyla duruyor | Hesap, artık yapılandırılmamış bir istemciyle bağlanmıştı. Hesabı yeniden bağlayın ya da o istemci kimliğini ve gizli anahtarını geri yükleyin |
İlgili kılavuzlar
Bölüm başlığı “İlgili kılavuzlar”- Bir toplantıyı kaydetme ve özetleme: bir etkinliği kayda dönüştürün
- Headless bir sunucu çalıştırma: token’ların ve eşitleme zamanlamasının yaşadığı yer
- GitHub entegrasyonunu kurma