

google colabroratoryを利用してのgmail
APIの利用でエラーが発生して、困っております。エラーとなっている状況は次の通りで、どなたかご教授をお願いできないでしょうか。

google のサンプルをほぼそのまま利用して、実行しようとしております。  
サンプルコードの以下部分で、エラーが発生している状況です。

creds = flow.run_local_server(port=0 )

エラー内容はcould not locate runnable browserと表示されます。  
WEBで検索などをしたのですが、どのように解決してよいかわからず、ご教授頂けないでしょうか。

■サンプルコード

[code]

    import os.path
    
    from google.auth.transport.requests import Request
    from google.oauth2.credentials import Credentials
    from google_auth_oauthlib.flow import InstalledAppFlow
    from googleapiclient.discovery import build
    from googleapiclient.errors import HttpError
    
    # If modifying these scopes, delete the file token.json.
    SCOPES = ["https://www.googleapis.com/auth/gmail.readonly"]
    
    
    def main():
      """Shows basic usage of the Gmail API.
      Lists the user's Gmail labels.
      """
      creds = None
      # The file token.json stores the user's access and refresh tokens, and is
      # created automatically when the authorization flow completes for the first
      # time.
      if os.path.exists("token.json"):
        creds = Credentials.from_authorized_user_file("token.json", SCOPES)
      # If there are no (valid) credentials available, let the user log in.
      if not creds or not creds.valid:
        if creds and creds.expired and creds.refresh_token:
          creds.refresh(Request())
        else:
          flow = InstalledAppFlow.from_client_secrets_file(
              "credentials.json", SCOPES
          )
          creds = flow.run_local_server(port=0)
        # Save the credentials for the next run
        with open("token.json", "w") as token:
          token.write(creds.to_json())
    
      try:
        # Call the Gmail API
        service = build("gmail", "v1", credentials=creds)
        results = service.users().labels().list(userId="me").execute()
        labels = results.get("labels", [])
    
        if not labels:
          print("No labels found.")
          return
        print("Labels:")
        for label in labels:
          print(label["name"])
    
      except HttpError as error:
        # TODO(developer) - Handle errors from gmail API.
        print(f"An error occurred: {error}")
    
    
    if __name__ == "__main__":
      main()
    
[/code]


CC BY-SA 4.0
2023-11-11T07:58:49.777
96752
2023-11-12T00:25:15.863
2023-11-12T00:25:15.863
60382
60382
question
python google-colaboratory
google colabroratoryでのgmail 認証エラーについてご教授ください