我花了幾個小時試圖研究和解決這個問題,但不幸的是仍在苦苦掙扎。
我在 Wordpress 中創建了一個自定義的“課程”帖子型別,其中涉及使用嵌入式 Calendly 事件注冊。我正在使用 Calendly 嵌入 API在發生事件注冊時通知父視窗。通知負載提供事件的URI,然后我想使用 Calendly API 查找并回傳事件的名稱。我正在努力將 API 密鑰隱藏在標頭中:
"Content-Type": "application/json",
"Authorization": "Bearer MY_API_KEY"
}
我試圖在 wpconfig 中添加一行來定義密鑰:
define( 'CALENDLY_KEY', '**key**' );
但是我不知道如何在我的函式中使用它而不通過'echo'暴露它。
任何建議將不勝感激。
下面的擴展代碼:
<!-- 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>
uj5u.com熱心網友回復:
您應該使用 dotenv (.env) 檔案作為 API 密鑰。
您可以通過vlucas/phpdotenv包安裝對 dotenv (.env) 的支持,并在您的服務器上使用 PHP 的 Composer 包管理器。
更簡單的選擇 - 如果您沒有您所說的經驗,則使用 WordPress 插件dontenv,您將創建 .env 檔案并在其中寫入 MY_API_KEY=123456,然后在您的代碼中,您可以檢索此 .env 密鑰通過使用 getenv('MY_API_KEY');
這適用于 PHP,但您的代碼是 JS,因此您應該安裝 npm 包管理器,npm i dontenv然后在您的代碼中運行Bearer ${process.env.MY_API_KEY}。
此外,不應將 .env 檔案上傳到 GitHub。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/418958.html
標籤:
上一篇:如何在wordpress中使用會話而不使用$_SESSION
下一篇:在頁面或存檔頭中顯示ACF欄位
