Add new Backend structure with proper .NET 8 projects
This commit is contained in:
36
src/Backend/DiunaBI.Core/Services/GoogleSheetsHelper.cs
Normal file
36
src/Backend/DiunaBI.Core/Services/GoogleSheetsHelper.cs
Normal file
@@ -0,0 +1,36 @@
|
||||
using Google.Apis.Auth.OAuth2;
|
||||
using Google.Apis.Services;
|
||||
using Google.Apis.Sheets.v4;
|
||||
using System.IO;
|
||||
|
||||
namespace DiunaBI.Core.Services;
|
||||
|
||||
public class GoogleSheetsHelper
|
||||
{
|
||||
public SheetsService? Service { get; private set; }
|
||||
private const string ApplicationName = "Diuna";
|
||||
private static readonly string[] Scopes = [SheetsService.Scope.Spreadsheets];
|
||||
public GoogleSheetsHelper()
|
||||
{
|
||||
InitializeService();
|
||||
}
|
||||
private void InitializeService()
|
||||
{
|
||||
var credential = GetCredentialsFromFile();
|
||||
Service = new SheetsService(new BaseClientService.Initializer
|
||||
{
|
||||
HttpClientInitializer = credential,
|
||||
ApplicationName = ApplicationName
|
||||
});
|
||||
}
|
||||
private static GoogleCredential GetCredentialsFromFile()
|
||||
{
|
||||
var fileName = "client_secrets.json";
|
||||
#if DEBUG
|
||||
fileName = "client_secrets.Development.json";
|
||||
#endif
|
||||
using var stream = new FileStream(fileName, FileMode.Open, FileAccess.Read);
|
||||
var credential = GoogleCredential.FromStream(stream).CreateScoped(Scopes);
|
||||
return credential;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user