Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/murcegany/google-drive-update
Exemplo de código para a integração do Google drive com o gmail.
https://github.com/murcegany/google-drive-update
api-driver csharp driver gmail gmail-api
Last synced: 10 days ago
JSON representation
Exemplo de código para a integração do Google drive com o gmail.
- Host: GitHub
- URL: https://github.com/murcegany/google-drive-update
- Owner: Murcegany
- Created: 2024-08-08T19:07:07.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2024-08-08T19:39:51.000Z (5 months ago)
- Last Synced: 2024-11-07T14:09:32.583Z (2 months ago)
- Topics: api-driver, csharp, driver, gmail, gmail-api
- Language: C#
- Homepage:
- Size: 562 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Gmail to Google Drive Integration
Este projeto é um script em C# que faz a integração entre o Gmail e o Google Drive. Ele busca e-mails não lidos, faz o upload de anexos PDF para uma pasta específica no Google Drive, e em seguida, marca esses e-mails como lidos e os exclui. Sendo um projeto de exemplo, sendo necessário substituir por campos verdadeiros.
### Como Funciona
Processamento de E-mails
- O programa pesquisa por e-mails não lidos com anexos PDF de um remetente específico.
- Ele ignora anexos que contenham certas palavras-chave no nome do arquivo (como "Boleto").
- Os arquivos PDF são enviados para uma pasta específica no Google Drive.
- Após o upload, o e-mail é marcado como lido e excluído.Evitando Duplicações
- Antes de fazer o upload, o programa verifica se o arquivo já existe no Google Drive. Se o arquivo já estiver lá, ele não será carregado novamente.
Persistência de Processamento
- O programa salva o ID do último e-mail processado em um arquivo (lastProcessedMessageId.txt) para garantir que e-mails anteriores não sejam reprocessados.
Modificando o Filtro de E-mails
- Você pode ajustar o filtro de e-mails alterando a string de consulta na linha:
```bash
string query = "from:[email protected] has:attachment is:unread";
```Mudando a Pasta de Destino no Google Drive
- Para alterar a pasta onde os arquivos são salvos no Google Drive, modifique a variável Parents no código:```bash
Parents = new List { "sua_pasta_id" };
```## Requisitos
- .NET Core SDK 3.1 ou superior
- Conta Google com acesso ao Gmail e Google Drive
- Credenciais de API da Google Cloud Platform (GCP)## Configuração
### 1. Criar Projeto na Google Cloud Platform
1. Acesse o [Google Cloud Console](https://console.cloud.google.com/).
2. Crie um novo projeto.
3. Ative as APIs do Gmail e do Google Drive para o seu projeto.
- **Gmail API**: Vá para "APIs & Services" > "Library" e procure por "Gmail API". Clique em "Enable".
- **Google Drive API**: Vá para "APIs & Services" > "Library" e procure por "Google Drive API". Clique em "Enable".
4. Configure uma tela de consentimento OAuth 2.0 para seu projeto.
- Vá para "APIs & Services" > "OAuth consent screen" e siga os passos para configurar.
5. Crie credenciais para o OAuth 2.0:
- Vá para "APIs & Services" > "Credentials".
- Clique em "Create Credentials" > "OAuth 2.0 Client IDs".
- Escolha "Desktop app" como tipo de aplicação.
- Faça o download do arquivo `credentials.json` e salve-o na pasta raiz do projeto.### 2. Clonar o Repositório e Configurar
1. Clone este repositório para sua máquina local:
```bash
git clone https://github.com/seu-usuario/gmail-drive-integration.git
cd gmail-drive-integration
```2. Coloque o arquivo credentials.json baixado anteriormente na pasta raiz do projeto.
3. (Opcional) Modifique as variáveis [email protected] e sua_pasta_id no código conforme necessário.
### 3. Compilar e Executar
1. Abra o terminal na pasta do projeto e execute:
```bash
dotnet build
dotnet run
```2. Ao rodar pela primeira vez, o programa abrirá uma janela do navegador para você autorizar o acesso às suas contas do Gmail e Google Drive. Conceda as permissões necessárias.