Si vous souhaitez voir comment les choses que vous faites cette fois-ci fonctionneront, veuillez consulter ici (vidéo youtube).
Tout d'abord, accédez au site de la plate-forme Google Cloud et appuyez sur l'API et la bibliothèque de services. Faites ensuite défiler vers le bas pour trouver l'API Gmail et appuyez dessus. Appuyez ensuite sur Activer. Lorsque l'écran change, appuyez sur le résumé de celui dans la liste du menu de gauche. Lorsque l'écran change, appuyez sur Créer des informations d'identification à l'extrême droite. Ensuite, entrez comme indiqué dans l'image et appuyez sur les informations d'authentification requises ci-dessous. Lorsque vous avez également terminé de les saisir, appuyez sur Créer un ID client OAuth. Peu importe le nom. Pourtant, sans appuyer sur Terminé, Appuyez sur la zone de téléchargement. Cela créera un fichier appelé client_id.json dans le répertoire courant.
pip install --upgrade google-api-python-client
pip install requests
pip install httplib2
Puisque j'utilise python3.6 cette fois, si vous utilisez python3.7 etc. et que cela ne fonctionne pas, veuillez installer en utilisant pip3.
Allez sur le site Line Developers et appuyez sur Documents dans le menu ci-dessus. Faites défiler vers le bas et appuyez sur Notification de ligne. Lorsque la page change et que vous vous connectez, appuyez sur Ma page. Appuyez ensuite sur Créer un jeton. Ensuite, on vous demandera un nom, mais ce ne sera qu'au début du message de discussion, donc tout va bien. Ensuite, le jeton s'affiche, alors copiez-le. Cependant, une fois que vous l'aurez fermé, vous ne pourrez plus le voir, alors soyez prudent.
Créez le fichier ci-dessous dans le répertoire où se trouve client_id.json et exécutez-le.
g_oauth.py
import httplib2, os
from apiclient import discovery
from oauth2client import client
from oauth2client import tools
from oauth2client.file import Storage
SCOPES = 'https://www.googleapis.com/auth/gmail.readonly'
CLIENT_SECRET_FILE = '/home/igor-bond/Desktop/client_id.json'
USER_SECRET_FILE = '/home/igor-bond/Desktop/credentials_gmail.json'
def gmail_user_auth():
store = Storage(USER_SECRET_FILE)
credentials = store.get()
if not credentials or credentials.invalid:
flow = client.flow_from_clientsecrets(CLIENT_SECRET_FILE, SCOPES)
flow.user_agent = 'Python Gmail API'
credentials = tools.run_flow(flow, store, None)
print('J'ai enregistré le résultat de l'authentification:' + USER_SECRET_FILE)
return credentials
Ici, un fichier appelé credentials_gmail.json, qui stocke également les secrets de l'utilisateur, est également créé dans le même répertoire.
Créez ce fichier dans le même répertoire que vous avez créé jusqu'à présent. Pour votre jeton, collez le jeton de notification de ligne que vous avez copié précédemment.
gpio.py
import os,httplib2
from apiclient import discovery
import g_oauth
import time
from datetime import datetime
import picamera
import requests
token = 'Your Token'
def gmail_get_service():
credentials = g_oauth.gmail_user_auth()
http = credentials.authorize(httplib2.Http())
service = discovery.build('gmail', 'v1', http=http)
return service
mail_list = []
def gmail_get_messages():
service = gmail_get_service()
messages = service.users().messages()
msg_list = messages.list(userId='me', maxResults=1).execute()
for msg in msg_list['messages']:
topid = msg['id']
msg = messages.get(userId='me', id=topid).execute()
if msg['snippet'] == 'Security Check2':
if not msg['id'] in mail_list:
mail_list.append(msg['id'])
send_msg()
def send_msg():
filename = datetime.now()
with picamera.PiCamera() as camera:
camera.resolution = (1024,768)
camera.capture(str(filename)+'.jpg')
url = 'https://notify-api.line.me/api/notify'
headers = {'Authorization':'Bearer '+token}
data = {"message":"Here is your room."}
img = f'/home/pi/Desktop/RaspberryPi_for_convenient_life/Projeect 1/{filename}.jpg'
file = {'imageFile': open(img, 'rb')}
r = requests.post(url, headers=headers, params=data, files=file,)
run = True
while run:
try:
time.sleep(30)
gmail_get_messages()
except KeyboardInterrupt:
run = False
Ici, toutes les 30 secondes, le courrier en haut de Gmail de l'utilisateur connecté est retiré, et si le contenu est "Security Check2" et que le courrier n'est pas traité avec le même contenu, prenez une photo avec Raspeye et LineNotify. Venez à moi. C'est. Je ne l'ai pas encore implémenté, mais je pense qu'il est nécessaire de supprimer la photo après l'avoir envoyée. Les photos vont s'accumuler et l'opération sera lourde, alors ...
Comment faire cette simple caméra de surveillance est également expliqué dans Youtube, alors jetez un œil si vous l'aimez. Si vous avez des questions, veuillez utiliser la section commentaires de la vidéo ou la section commentaires de cet article. De plus, si vous l'aimez, veuillez vous abonner à la chaîne.
Recommended Posts