Skip to content

Latest commit

 

History

History
160 lines (123 loc) · 5.18 KB

File metadata and controls

160 lines (123 loc) · 5.18 KB

Google Sheets Entegrasyonu

Genel Bakış

TikTok Chat Reader, Google Sheets API entegrasyonu sunarak aşağıdaki özellikleri sağlar:

  • Kullanıcı kimlik doğrulama
  • Hediye verilerini kaydetme
  • Kullanıcı notlarını yönetme
  • Kaydedilen ana bilgisayarları yönetme

Kurulum

1. Gerekli Dosyalar

  1. keys.json Dosyasının Oluşturulması

    # Örnek dosyayı kopyalayın
    cp keys.example.json keys.json
  2. keys.json Dosyasını Yapılandırma

    {
      "type": "service_account",
      "project_id": "proje-adiniz",
      "private_key_id": "private_key_id",
      "private_key": "-----BEGIN PRIVATE KEY-----\nÖZEL_ANAHTARINIZ\n-----END PRIVATE KEY-----\n",
      "client_email": "email@proje-adiniz.iam.gserviceaccount.com",
      "client_id": "client_id",
      "auth_uri": "https://accounts.google.com/o/oauth2/auth",
      "token_uri": "https://oauth2.googleapis.com/token",
      "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
      "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/email%40proje-adiniz.iam.gserviceaccount.com",
      "universe_domain": "googleapis.com"
    }

2. Google Cloud Console Ayarları

  1. Proje Oluşturma

  2. API Etkinleştirme

    • Google Sheets API'yi etkinleştirin
    • Google Drive API'yi etkinleştirin (gerekirse)
  3. Hizmet Hesabı Oluşturma

    • IAM & Admin → Service Accounts gidin
    • Create Service Account tıklayın
    • Hizmet hesabı için bir ad ve açıklama girin
    • Create and Continue tıklayın
    • İzinleri atlayın (Done)
    • Oluşturulan hizmet hesabını tıklayın
    • Keys sekmesine gidin
    • Add Key → Create new key
    • JSON seçeneğini seçin ve Create tıklayın
    • İndirilen JSON dosyasını keys.json olarak kaydedin
  4. Google Sheets Paylaşımı

    • Verileri kaydetmek için bir Google Sheets e-tablosu oluşturun
    • E-tablonuza hizmet hesabı e-posta adresini ekleyin (Paylaş → Kişi ekle)
    • Hizmet hesabına "Düzenleyici" izni verin

3. Çevre Değişkenleri

.env dosyasına aşağıdaki değişkenleri ekleyin:

GOOGLE_SHEET_ID=ana_e_tablo_id
GOOGLE_USER_SHEET_ID=kullanici_e_tablo_id

Sheet ID Nasıl Bulunur?

  • Google Sheets URL'sinden alın: https://docs.google.com/spreadsheets/d/SPREADSHEET_ID/edit#gid=0

Hata Yönetimi

Otomatik Hata Yönetimi

Sunucu, Google Sheets API ile ilgili hataları otomatik olarak yönetir:

  1. Dosya Bulunamadı: keys.json dosyası yoksa, Google Sheets özellikleri devre dışı bırakılır
  2. Geçersiz Kimlik Bilgileri: keys.json dosyasındaki bilgiler hatalıysa, API kullanılmaz
  3. Bağlantı Hataları: API çağrıları sırasında hata oluşursa, sunucu çökmez ve log kaydı tutulur

Loglama

Tüm Google Sheets API hataları sunucu loglarına kaydedilir:

Google Sheets çağrısı başarısız oldu (functionName): error message

Özelliklerin Durumu

Google Sheets Etkin Durumda

  • Kullanıcı girişi çalışır
  • Hediye verileri kaydedilir
  • Notlar yönetilebilir
  • Kaydedilen ana bilgisayarlar yönetilebilir

Google Sheets Devre Dışı Durumda

  • Kullanıcı girişi çalışmaz (hata mesajı gösterir)
  • Hediye verileri kaydedilmez (hata mesajı gösterir)
  • Google Sheets'e bağlı tüm özellikler devre dışıdır
  • Diğer tüm özellikler normal çalışır

Sorun Giderme

Yaygın Sorunlar

  1. "keys.json dosyası bulunamadı" hatası

    • Çözüm: keys.example.json dosyasını keys.json olarak kopyalayın
  2. "Geçersiz kimlik bilgileri" hatası

    • Çözüm: keys.json dosyasının doğru yapılandırıldığından emin olun
  3. "Erişim reddedildi" hatası

    • Çözüm: Hizmet hesabına Google Sheets erişim izni verin
  4. "Sunucu çöküyor" hatası

    • Çözüm: server-final.js dosyasını kullanın (otomatik hata yönetimi içerir)

Test Etme

Google Sheets entegrasyonunun çalışıp çalışmadığını test etmek için:

  1. Sunucuyu başlatın
  2. Konsol loglarını kontrol edin
  3. "Google Sheets API başarıyla etkinleştirildi" mesajını arayın

Manuel Test

Aşağıdaki komutla Google Sheets bağlantısını test edebilirsiniz:

node -e "
const fs = require('fs');
try {
  const keys = JSON.parse(fs.readFileSync('keys.json', 'utf8'));
  console.log('keys.json dosyası geçerli');
  console.log('Proje ID:', keys.project_id);
  console.log('E-posta:', keys.client_email);
} catch (error) {
  console.error('keys.json dosyası okunamadı:', error.message);
}
"

Güvenlik Notları

  • keys.json dosyasını asla GitHub'a yüklemeyin (gitignore dosyasında olduğundan emin olun)
  • Hizmet hesabı anahtarlarını güvenli bir yerde saklayın
  • Hizmet hesabına sadece gerekli izinleri verin
  • Düzenli olarak anahtarları yenileyin

Geliştirme İpuçları

  • Google Sheets özelliklerini test etmek için geliştirme ortamında ayrı bir proje kullanın
  • Hata yönetimi için safeGoogleSheetsCall fonksiyonunu kullanın
  • API çağrılarının sonuçlarını her zaman kontrol edin
  • Log mesajlerini açıklayıcı tutun