Gitalk Error: Validation Failed. 442 報錯解決方法
出版:2018-03-10
最近忙著大學的事情,少了時間寫博客文章。可是沒想到在過去那一篇文章發佈之後,就遇到 Gitalk 評論區出現 Error: Validation Failed.
這樣的問題,在 Github 上面和網友討論之後,想出了一個解決方法,希望可以拋磚引玉。
Github 更新了關於 Issue 字數的限制,利用 location.pathname 的話創建 Issue 的 Tag 的話,很容易超過 50 字。
這是原本的配置,也是 Github Repo 上面的入門方法。
const gitalk = new Gitalk({
clientID: "Github Application Client ID",
clientSecret: "Github Application Client Secret",
repo: "Github repo",
owner: "Github repo owner",
admin: [
"Github repo owner and collaborators, only these guys can initialize github issues"
],
id: location.pathname, // Ensure uniqueness and length less than 50
distractionFreeMode: false // Facebook-like distraction free mode
});
如果直接修改 id 的賦值的話,那麼當 Gitalk 尋找以前的標籤的時候,便會出現找不到 Issue,自動創建一個新討論區的問題。
這很明顯不是我們需要的設計,我們是想要繼續運用那一個 Issue。
於是我便想了一下最近的 Issue 和以前的 Issue 的區別,其中一個就是時間的分別。
因為我遇到這個問題是 2018 年 3 月,所以用這個時間分開 id 的賦值就好了,比如把標題 (title) 設置成 id:
const issueDate = "2018-03-01";
if (moment(createdDate).isAfter(issueDate)) {
id = title;
}
這樣的話,其實就可以了。但如果文章的標題很長的話,那又會超出 50 字的限制。那麼用 md5 把字數縮短一下就好了。它既帶有唯一的特性,也可以限制字數。
首先安裝 md5 工具:npm install md5
然後在你寫入 Gitalk 評論區的地方寫入以下代碼:
import md5 from "md5";
id = md5(title);
如果你是使用 React 或者想要觀看代碼更改的話,那麼你可以查看我的 Commit Log: https://github.com/calpa/blog/commit/88c83f66b070655e645581783097f019e6539c0e#diff-b334c7299860c69226f3d8a8f4a36c1f
如果你覺得實用的話,不妨 Star 一下以獲得之後的最新更新。
Calpa 是一個四天工作的系統架構師,日常幫助客戶構建一站式網站應用,手機應用,雲端架構。
2023 年 9 月,Calpa 收到來自國內外不同 Web3 團隊的邀請,參加韓國的 KBW 2023 和新加坡的 TOKEN 2049 活動。十二月份,Calpa 將參加台北區塊鏈週的 Hackathon 比賽。
Calpa 擅長運用各種前沿技術,包括 TypeScript、React.js 和 Vue.js,開發具有 Responsive Web Design 的網站。另外,他透過運用 aws-cdk 和 TypeScript 技術的融合,實現了基於雲端的「基礎即代碼」(Infrastructure as Code)部署策略,建立了多套高效且具有可伸縮性的全端架構。
同時,Calpa 積極參與各個社群,活躍於香港和台灣的開源社區,分享前沿知識。他曾在 2019 年的香港開源大會中擔任重要講者,為聽眾提供寶貴的工作經驗和深刻見解。此外,Calpa 在 GitHub 上公開分享了個人博客程式碼,已獲得超過 300 顆星星和 60 個分支。
如果您對系統架構有任何問題,或需要進一步交流,請隨時聯絡 Calpa,他非常歡迎討論。