Solución:
La API heredada no funciona. Usar nueva API
No sé si se resuelve para alguien, pero intenté agregar un contacto a sendgrid usando este documento obteniendo {“errores”:[{“field”:null,”message”:”access forbidden”}]}:
https://sendgrid.com/docs/API_Reference/Web_API_v3/Marketing_Campaigns/contactdb.html#Add-Single-Recipient-POST
POST POST https://api.sendgrid.com/v3/contactdb/recipients HTTP/1.1
Después de buscar un poco más, noté una nueva documentación (misma versión API v3) pero con métodos API muy diferentes:
https://sendgrid.api-docs.io/v3.0/contacts/add-or-update-a-contact
PUT https://api.sendgrid.com/v3/marketing/contacts
Investigué en esto y probé varias cosas yo mismo.
No puede configurar los permisos para que esto funcione a través de la interfaz de usuario del sitio web. Debe realizar llamadas a la API para establecer el permiso.
https://sendgrid.com/docs/API_Reference/Web_API_v3/API_Keys/api_key_permissions_list.html#User-Settings muestra una lista de todos los permisos / alcances posibles para la configuración del usuario.
https://sendgrid.com/docs/API_Reference/Web_API_v3/API_Keys/index.html#Update-the-name-amp-scopes-of-an-API-Key-PUT explica cómo agregar ámbitos a su clave de API.
AÑADIDO: Así que esto es más complicado que eso. No puede usar una clave API para modificar una clave API a menos que esa clave ya tenga permisos / alcance para “api_keys.update”. Esto significa que se encuentra en un problema 22. En lugar de utilizar el encabezado de autorización “Authroization: Bearer {API_KEY}”, debe realizar la primera llamada para actualizar una clave API para tener ese alcance utilizando un encabezado de autorización básico como “Authorization: Basic {base64Encoded (“nombre de usuario: contraseña”)} “. Bastante complicado y un dolor con el que lidiar en este momento. Parece que saldrán con una interfaz de usuario actualizada con suerte en unas pocas semanas para que todos podamos evitar esta pequeña trampa 22 en el futuro.
Este error también se debe a permisos insuficientes para la clave api.
https://sendgrid.com/docs/API_Reference/Web_API_v3/API_Keys/api_key_permissions_list.html#User-Settings
Para usar con api key
solo :
Go to Settings > Api keys > Edit Api Key > User Account
¡Viola! funciona como un encanto con API Key como Auth.
curl --request GET
--url https://api.sendgrid.com/v3/user/profile
--header 'Authorization: Bearer API KEY'
--header 'Content-Type: application/json'
Espero que esto ayude 🙂