Pasé horas tratando de investigar y resolver esto, pero desafortunadamente todavía estoy luchando.
Creé un tipo de publicación de 'cursos' personalizado en Wordpress que implica el uso de registros de eventos de Calendly integrados. Estoy usando la API de inserción de Calendly para notificar a la ventana principal cuando se lleva a cabo el registro de un evento. La carga útil de la notificación proporciona el URI del evento, que luego quiero buscar usando la API de Calendly y devolver el nombre del evento. Estoy luchando por ocultar la clave API en el encabezado:
"Content-Type": "application/json", "Authorization": "Bearer MY_API_KEY" }Intenté agregar una línea en wpconfig para definir la clave:
define( 'CALENDLY_KEY', '**key**' );Pero no sé cómo usar esto en mi función sin exponerlo a través de 'eco'.
Cualquier consejo sería muy apreciado.
Código extendido a continuación:
<!-- Calendly widget script --> <script type="text/javascript" src="https://assets.calendly.com/assets/external/widget.js" async></script> <script>function isCalendlyEvent(e) { return e.data.event && e.data.event.indexOf('calendly') === 0; }; window.addEventListener( 'message', function(e) { if (isCalendlyEvent(e)) { if (e.data.event == "calendly.event_scheduled") { console.log("event scheduled!"); let event_uri = e.data.payload.event.uri; console.log(event_uri); fetch(event_uri, { "method": "GET", "headers": { "Content-Type": "application/json", "Authorization": "Bearer MY_API_KEY" } }) .then(response => response.json()) .then((json) => { console.log(json); let ordered_course = json.resource.name; console.log(ordered_course); }) } console.log(e.data); } } );</script>Debe usar el archivo dotenv (.env) para su clave API.
Puede instalar soporte para dotenv (.env) a través del paquete vlucas/phpdotenv con el administrador de paquetes Composer para PHP en su servidor.
Opción más fácil: si no tiene experiencia como dice, es usar un complemento de WordPress dontenv , creará un archivo .env y dentro escribirá MY_API_KEY = 123456, luego en su código, puede recuperar esta clave .env usando getenv('MY_API_KEY');
Esto es para PHP pero su código es JS, por lo que debe instalar el administrador de paquetes npm y luego ejecutar npm i dontenv luego en su código Bearer ${process.env.MY_API_KEY} .
Además, los archivos .env no deben cargarse en GitHub.