Я хотел бы это исправить Таким образом, когда пользователь пытается предпринять действие на моем сайте, он автоматически откроет страницу аутентификации (если их учетные данные истек/не существуют), затем вернется на сайт после завершения аутентификации, написав файл token.json, разрешив, разрешив, разрешив файл, разрешая, разрешая файл. им теперь добавить события в свой календарь. Я думаю, что я смотрел на это слишком долго, однако, и не знаю, что делать на данный момент. Любая помощь будет высоко оценена. < /P>
Вот моя функция аутентификации. < /P>
Код: Выделить всё
SCOPES = os.getenv("SCOPES")
def authenticate_google():
"""Authenticate and return a Google Calendar API service instance."""
creds = None
# Token file stores the user's access and refresh tokens
if os.path.exists('token.json'):
creds = Credentials.from_authorized_user_file('token.json', SCOPES)
# If no credentials are available, prompt the user to log in
if not creds or not creds.valid:
if creds and creds.expired and creds.refresh_token:
creds.refresh(Request())
else:
flow = Flow.from_client_secrets_file(
os.getenv("GOOGLE_CREDENTIALS_PATH"),
SCOPES,
)
flow.redirect_uri = os.getenv("REDIRECT_URI")
auth_url, _ = flow.authorization_url(
access_type="offline",
include_granted_scopes="true",
prompt="consent"
)
webbrowser.open(auth_url, new=1, autoraise=True)
flow.fetch_token(authorization_response=request.url)
creds = flow.credentials
with open("token.json", "w") as token:
token.write(creds.to_json())
try:
# Build the Calendar API service
service = build('calendar', 'v3', credentials=creds)
return service
except HttpError as error:
print(f"Build failed: {error}")
< /code>
И вот мой файл .env, если это помогает: < /p>
SCOPES=https://www.googleapis.com/auth/calendar
GOOGLE_CREDENTIALS_PATH=credentials.json
REDIRECT_URI=http://127.0.0.1:5000/
REDIRECT_PORT="5000"
Подробнее здесь: https://stackoverflow.com/questions/794 ... -my-webapp