initial commit

This commit is contained in:
Arne Moerman
2024-12-15 18:56:09 +01:00
parent 92a30c6e83
commit 411f4eb774
7 changed files with 131 additions and 0 deletions

View File

@@ -0,0 +1,25 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.7.34221.43
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GmailArneMoermanSorter", "GmailArneMoermanSorter\GmailArneMoermanSorter.csproj", "{3ECD0085-DC1D-429C-87D2-E3FEBC12BBC9}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{3ECD0085-DC1D-429C-87D2-E3FEBC12BBC9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3ECD0085-DC1D-429C-87D2-E3FEBC12BBC9}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3ECD0085-DC1D-429C-87D2-E3FEBC12BBC9}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3ECD0085-DC1D-429C-87D2-E3FEBC12BBC9}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {35572BF2-9ACB-45E6-8671-ADC9D1D25CC1}
EndGlobalSection
EndGlobal

View File

@@ -0,0 +1,20 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net7.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Google.Apis.Gmail.v1" Version="1.64.0.3231" />
</ItemGroup>
<ItemGroup>
<None Update="clientSecret.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>
</Project>

View File

@@ -0,0 +1,48 @@
using Google.Apis.Auth.OAuth2;
using Google.Apis.Gmail.v1;
using Google.Apis.Services;
using Google.Apis.Util.Store;
namespace GmailArneMoermanSorter
{
internal class Program
{
static void Main(string[] args)
{
Console.WriteLine("Access emails over Gmail Api");
try
{
new Program().Run().Wait();
}
catch (Exception e)
{
Console.WriteLine(e);
throw;
}
}
private async Task Run()
{
UserCredential credential;
using (var stream = new FileStream("clientSecret.json", FileMode.Open, FileAccess.Read))
{
credential = await GoogleWebAuthorizationBroker.AuthorizeAsync(
GoogleClientSecrets.FromStream(stream).Secrets,
new[] {GmailService.Scope.GmailLabels},
"user", CancellationToken.None, new FileDataStore("GmailApi.Auth.Store"));
}
var service = new GmailService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = "GmailArneMoermanSorter"
});
var labels = await service.Users.Labels.List("me").ExecuteAsync();
foreach (var label in labels.Labels)
{
Console.WriteLine(label.Name);
}
}
}
}

View File

@@ -0,0 +1,3 @@
{
}

View File

@@ -0,0 +1,4 @@
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v7.0", FrameworkDisplayName = ".NET 7.0")]

View File

@@ -0,0 +1,23 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("GmailArneMoermanSorter")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
[assembly: System.Reflection.AssemblyProductAttribute("GmailArneMoermanSorter")]
[assembly: System.Reflection.AssemblyTitleAttribute("GmailArneMoermanSorter")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
// Generated by the MSBuild WriteCodeFragment class.

View File

@@ -0,0 +1,8 @@
// <auto-generated/>
global using global::System;
global using global::System.Collections.Generic;
global using global::System.IO;
global using global::System.Linq;
global using global::System.Net.Http;
global using global::System.Threading;
global using global::System.Threading.Tasks;