Recibo un error de servidor 500 en mi sitio web de django que se ejecuta en Google App Engine. Cuando miro los registros de Google App Engine, veo el siguiente error:
googleapiclient.errors.HttpError: <HttpError 403 when requesting https://www.googleapis.com/discovery/v1/apis/gmail/v1/rest returned "The caller does not have permission">
Cuando actualizo el navegador, este error desaparece. Luego, después de un tiempo, vuelve a aparecer. Ocurre en dispositivos móviles (Firefox, Safari), portátiles (Firefox, Chrome).
ACTUALIZAR:
En Django settings.py tengo el siguiente código. Su última línea genera el error:
pickle_path = 'token.pickle' # path to token.pickle with open(pickle_path, 'rb') as token: creds = pickle.load(token) SERVICE = build('gmail', 'v1', credentials=creds) # ERROR LINECuando ejecuto el servidor django localmente: aparece el siguiente error:
googleapiclient.errors.HttpError: <HttpError 403 when requesting https://www.googleapis.com/discovery/v1/apis/gmail/v1/rest returned "The caller does not have permission">Cuando reinicio la conexión sql en la nube desde mi terminal, el error desaparece. Esto nunca solía suceder hasta hace unos días.
Tengo el mismo problema con GAM ADV-X. Pensé que era un problema en mi computadora, así que probé en 2 computadoras diferentes y obtuve el mismo error. De hecho, parece que algo cambió en la API de Gmail durante el fin de semana. Enviará un ticket a Google.
También comencé a enfrentar este problema. He estado usando las API de Google durante más de un año, pero de repente este error HttpError 403 when requesting https://www.googleapis.com/discovery/v1/apis/gmail/v1/rest returned "The caller does not have permission . Sin embargo, un par de veces no vi este error y la llamada a la API fue exitosa. Espero este error en el servidor API de Gmail.
Actualización: puedo llamar a las API de Google sin ningún problema. Parece que el problema se resuelve al final de Google.
Aquí hay una solución:
gmail-api.json )build_from_documentAntes
from googleapiclient.discovery import build gmail_creds = get_service_account_creds() gmail_service = build('gmail', 'v1', credentials=gmail_creds)Después
from googleapiclient.discovery import build_from_document discovery_doc = load_json('config/gmail-api.json') gmail_creds = get_service_account_creds() gmail_service = build_from_document(discovery_doc, credentials=gmail_creds)Parece que ahora es un P0 para Google, así que esperemos que se solucione pronto.