Gitalk 评论插件使用指南

1,170 阅读2分钟

3 - 副本.jpg

平时看人家博客的时候,看到文章末尾能评论的,以为都是自己搭建的,有后台数据库的,后来才知道有纯前端的这种评论插件。今天有空摸鱼也弄了一下,选用的是gitalk,顺便记录下遇到的问题。 详细用法看官网github.com/gitalk/gita…

1.申请秘钥

申请一个 OAuth application github.com/settings/ap…

获取 ID 和 secrets,必须要保存好,然后以后就看不到了,忘记了只能重建。

2.Gitalk 的参数

我这里是 react,其他的安装官网使用即可。

import React from 'react';
import 'gitalk/dist/gitalk.css';
import GitalkComponent from 'gitalk/dist/gitalk-component';

export default ({ id }) => {
return (
<GitalkComponent
options={{
clientID: '0259e9879ce2154fa035', // 上面申请到的
clientSecret: 'bcxxxxxxxxxxx',
repo: 'lucas270.github.io', //存放评论的仓库名称可以是随便一个仓库这里就用博客仓库好了owner: 'lucas270', //github用户名
admin: ['lcuas270'], //这博客仓库可以操作的用户名
id: id, //唯一值用来标记是哪个页面的评论可以用window.location.pathname,我这里用到的地方不多所以就为每个页面手动设置了
}}
/>
);
};

问题 1:Error: Not Found

这是repo填错了,导致说没有找到这个仓库,当时填了完整的仓库地址,这只要填具体名称即可

问题 2:未找到相关的 Issues 进行评论

这个当时弄了好久,在网上看各种方法,都解决不了,网上说出现这情况的原因:

  1. 当时 Authorization callback URL 没设 https ——>不可能啊,直接复制浏览器上的,肯定是 https 的
  2. 配置 gitalk 选项时 admin 填错了——>这个也没错
  3. 存放评论的仓库没有 issue ——> 最坑就是这了,网上只是说去手动建一条 issue 即可,但没说 那条 issue 的 label 必须同时是 gitalk 的 label 和你在页面使用时配置的 id

我们可以在示例中github.com/gitalk/gita… 看到它的 labels 是 Gitalk 和 Demo (插件默认的 labels 是 Gitalk),然后在源码第 138 行github.com/gitalk/gita… 看到设的 id 是 Demo

我们手动新建一条 issue,并设置上 labels

每个页面使用到 gitalk,应该单独设置一条 issue

按上面那样设置好页面对应的 issue 后,然后刷新页面,就解决问题了。