Merhaba, Google Looker Studio diye bir raporlama aracı varmış.
Veri görselleştirme işlerine yarıyor.
Buna kaynak olarak bir çok alternatif sunabiliyorsunuz.
Ama bana en uygunu bir Google Sheets gibi geldi.
Ama bu Google Sheets dosyasını otomatik olarak da doldurabilmem lazımdı.
İşte bu noktada bunu API ile nasıl yaparım diyerek çıktım yola ve faydalı yönlendirmeler sayesinde basitçe hallettim.
- Google Cloud Console’a giderek bir proje oluşturdum.
- Sol üst köşedeki hamburger menüden IAM ve Yönetici > Hizmet Hesapları kısmını seçtim.
- Şöyle bir isim verdim hesap adı olarak: google-sheets-api-service-account
- Sonra oluşan hesabın e-posta adresine tıkladım.
- Anahtarlar sekmesine gidip, “Anahtar Ekle” > “Yeni Anahtar Oluştur” seçeneğini seçtim.
- JSON olarak indirdim dosyayı. Adını service-account.json yaptım.
- Bir tane Google Sheets dosyası oluşturdum: https://docs.google.com/spreadsheets/d/1AbCdEfGhIjKlMnOpQrStUvWxYz12345678901234/edit
/d/ ile /edit arasında kalan uzun karakter dizisi senin spreadsheetId imiş.
- Bunu az önceki servis kullanıcı ile paylaştım. SHARE seçeneğini seçip o e-posta adresini ekledim.
Bir .net konsol projesi oluşturdum.
.NET projesine Google.Apis.Sheets.v4 NuGet paketini ekledim.
Sonra şu kodu yazdım.
Çat diye çalıştı arkadaş.
using Google.Apis.Auth.OAuth2;
using Google.Apis.Services;
using Google.Apis.Sheets.v4;
using Google.Apis.Sheets.v4.Data;
Console.WriteLine("Hello, World!");
GoogleCredential credential;
using (FileStream stream = new FileStream("service-account.json", FileMode.Open, FileAccess.Read))
{
credential = GoogleCredential.FromStream(stream).CreateScoped(SheetsService.Scope.Spreadsheets);
}
SheetsService service = new SheetsService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = "ConsoleGoogleSheetsUpdate",
});
String spreadsheetId = "1AbCdEfGhIjKlMnOpQrStUvWxYz12345678901234";
String range = "Sheet1!A2";
ValueRange valueRange = new ValueRange();
valueRange.Values = new List<IList<object>> { new List<object> { "Hello, World!" } };
SpreadsheetsResource.ValuesResource.UpdateRequest request = service.Spreadsheets.Values.Update(valueRange, spreadsheetId, range);
request.ValueInputOption = SpreadsheetsResource.ValuesResource.UpdateRequest.ValueInputOptionEnum.RAW;
UpdateValuesResponse response = request.Execute();
Console.WriteLine("Veri başarıyla eklendi.");
Selamlar.