Skip to content

Commit f87a34c

Browse files
Google API Implementation Using Python
0 parents  commit f87a34c

File tree

2 files changed

+60
-0
lines changed

2 files changed

+60
-0
lines changed

Bot.py

+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
from json import dumps
2+
from httplib2 import Http
3+
import argparse
4+
5+
def post_message(message):
6+
url = 'https://chat.googleapis.com/v1/spaces/messages'
7+
bot_message = {
8+
'text' : message
9+
}
10+
11+
message_headers = {'Content-Type': 'application/json; charset=UTF-8'}
12+
13+
http_obj = Http()
14+
15+
response = http_obj.request(
16+
uri=url,
17+
method='POST',
18+
headers=message_headers,
19+
body=dumps(bot_message),
20+
)
21+
print(response)
22+
23+

EmailParser.py

+37
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
from googleapiclient.discovery import build
2+
from httplib2 import Http
3+
from oauth2client import file, client, tools
4+
from googleapiclient.errors import HttpError
5+
import email
6+
from Bot import post_message
7+
8+
SCOPES = 'https://www.googleapis.com/auth/gmail.readonly'
9+
10+
11+
def main():
12+
store = file.Storage('token.json')
13+
creds = store.get()
14+
if not creds or creds.invalid:
15+
flow = client.flow_from_clientsecrets(
16+
'credentials.json', SCOPES)
17+
creds = tools.run_flow(flow, store)
18+
try:
19+
service = build('gmail', 'v1', http=creds.authorize(Http()))
20+
results = service.users().messages().list(userId='me', labelIds=['INBOX']).execute()
21+
emails = results.get('messages', [])
22+
for email in emails:
23+
messageheader = service.users().messages().get(userId='me', id=email['id'],format='full',metadataHeaders=None).execute()
24+
headers = messageheader["payload"]["headers"]
25+
subject = [i['value'] for i in headers if i["name"] == "Subject"]
26+
if subject == ['Your-Message-Topic]:
27+
msg = service.users().messages().get(userId='me', id=email['id']).execute()
28+
print(msg['snippet'])
29+
response = msg['snippet']
30+
post_message(response)
31+
else:
32+
exit(0)
33+
except HttpError as error:
34+
print(f'An error occurred: {error}')
35+
36+
if __name__ == '__main__':
37+
main()

0 commit comments

Comments
 (0)