前提・実現したいこと
https://note.com/hidekiikeda/n/n90013275fad3 の記事を参考に、Googleカレンダーの情報をLINEで確認できるような Bot の作成をしています。
しかし、エラーを起こしてしまい、先に進めなくなっていました。
本来であれば、
>>> print(service) Please visit this URL to authorize this application: https://accounts.google.com/o/oauth2/auth?response_type=code&client_id=603178jpvbh5iabha70c6u93t7t1.apps.googleusercontent.com&redirect_uri=http%3A%2F%2Flocalhost%3A5122F&scope=https%3A2F2Fwww.googleapis.com%2Fauth%2Fcalendar.events&state=ypuBnAzB2O9w&access_type=offline
という返答が来て、ブラウザが立ち上がり Google のログイン画面が表示されるらしいです。どうすればそのような挙動になりますでしょうか?
発生している問題・エラーメッセージ
>>> print(service) Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'service' is not defined
該当のソースコード
Python
1import pickle 2import os.path 3 4from googleapiclient.discovery import build 5from google_auth_oauthlib.flow import InstalledAppFlow 6from google.auth.transport.requests import Request 7 8SCOPES = ['https://www.googleapis.com/auth/calendar.events'] # read/write access to Events 9 10def credential(): 11 creds = None 12 # The file token.pickle stores the user's access and refresh tokens, and is 13 # created automatically when the authorization flow completes for the first 14 # time. 15 if os.path.exists('token.pickle'): 16 with open('token.pickle', 'rb') as token: 17 creds = pickle.load(token) 18 # If there are no (valid) credentials available, let the user log in. 19 if not creds or not creds.valid: 20 if creds and creds.expired and creds.refresh_token: 21 creds.refresh(Request()) 22 else: 23 flow = InstalledAppFlow.from_client_secrets_file( 24 'credentials.json', SCOPES) 25 creds = flow.run_local_server(port=0) 26 # Save the credentials for the next run 27 with open('token.pickle', 'wb') as token: 28 pickle.dump(creds, token) 29 service = build('calendar', 'v3', credentials=creds) 30 return service
試したこと
あなたの回答
tips
プレビュー