Gitalk Error: Validation Failed.
前言
没想到网络上的错误解答以及一知半解的人这么多
本来是想在一个文档中加入评论功能,然后看到了Gitalk便直接使用了,在docsify官方的配置项中,没有Gitalk的id的配置项,然后便出现了这个错误提示。
然后我开始百度寻找答案,谁知道全是一群傻子。。。
像什么加入MD5编码,将网站地址转为MD5的数据格式长度用来解决Issues的Labels长度限制的问题。
有的更加离谱去直接改人家Gitalk的源码来改变id项的发送形式。
然后我就一脸迷惑的选择了直接去github 找到Gitalk的项目下,然后查看Issues中的问题,果然一堆出现这种问题和解答。
基本上我在前面的几个都是国人的对话,其中有的一些解答方案就是同上面一样,引入一个MD5的js工具类,然后将本网页地址转成md5的数据形式,然后作为Gitalk的id配置项。
之前我还很奇怪,为什么这么多这种问题,作者还不去解决,然后看到Issues中的大部分傻傻的群众帮忙回答的解决方案我就理解了,真是一群傻子,要是我我也懒得搭理。
正文
好了废话不多说了,实际上我们现在已经清楚了为什么会出现这个错误,出现这个错误的原因就是因为,如果你不配置Gitalk的 id项,那么系统会默认根据你的网页生成一串很长的地址,然后在你的Github项目Issue 创建一个 Labels。
那么Gitalk是创建自动生成的一个标签,而Wiki Document Comment便是我Gitalk 配置项中的id值
实际上Gitalk拉取Issues中筛选条件为 Gitalk & 你配置的id
那么实际上id配置项你写什么东西都可以,长度只要不超过50即可。当然为了一般不占用issue中的label标识符,所以你可以自己定一个独一无二的解释label 例如我便是直接让它叫做 Wiki Document Comment (译为 wiki 文档评论,因为我的这个网站是作为Wiki文档评论区的,因此可以这样命名,具有较高的issue标识label)
所以各位不要再用什么MD5转换id了,真的没有任何意义,人家本身也不是让你这么用的。
而且转出来的编码会在你的issues中的label 显示一串没有任何意义的字符,你觉得很好看吗,只会变成人类迷惑行为。
PS:除此之外还可能会出错的问题
简单来说就是必须配置项没有写全,那就是Gitalk的title
该项是在创建issues时作为issue的名称,例如我在配置项中填的title为RulatedayDnd5eWiki
那么创建出来的issue便是 RulatedayDnd5eWiki
因此title是必须填入的,如果不填,也会导致错误的发生。
作者的配置项
const gitalk = new Gitalk({
id: 'Wiki Document Comment',
clientID: 'xxxxxxxxxxxxxxxxxxxx',
clientSecret: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
repo: 'rulateday-dnd5e-wiki',
owner: 'Eiriksgata',
admin: ['Eiriksgata'],
// facebook-like distraction free mode
distractionFreeMode: false,
title: 'RulatedayDnd5eWiki'
});