故事开始
现在基本大多数hexo主题都会配置gittalk插件.要使用的话非常简单,整理全网教程大概可以概括为
- 在github开发者设置中创建一个OAuth应用
- 新建一个仓库
- 在主题的配置文件中gittalk部分进行配置
乍一看简直不需要脑子,但关键的一个位置
却是众说分谈.我不知道是他们并没有亲自体会只是进行了简单的复制粘贴,还是随着时代的变迁gittalk插件更改了参数类型.总之经过我的尝试,这里要直接填写仓库名
不然就会出现ERROR:NOT FOUND错误
故事尝试
这一部分可能大家感兴趣的不多,但也算一个寻找bug的过程吧
拼写错误
首先我犯的第一个错误是tm的拼写错误.当时
- OAuth应用名称为blog_issue
- 仓库名为blog_issue
- gittalk配置填写的是blog-issus
当时我随机排列组合了很久也没找到问题所在.所幸一个月后我终于发现了自己的愚蠢行为
下划线影响
后来当我成功把中划线改成下划线,把issus改成issue后发现还是不行.于是猜测是不是下划线的影响.于是我就把所有名称统一改成了issue
虽然没有证据证明确实是下划线的影响.但是当我仓库名,OAuth应用名,gittalk配置repo参数都是issue时,运行没有问题
是否添加末尾github.io
大部分答案都说要在gittalk插件的repo参数填写形如issue.github.io模样的字符串,但是打开开发者工具你会发现报错的时候是有一条get请求的
url大概为https://api.github.com/repos/chantAria/issue.github.io/issues?labels=Gitalk,%2F2021%2F01%2F13%2FflaskThread%2F&t=1611069022291
咱们亲自尝试输入这个网址
果然是这个NOT FOUND错误.
这时只要我们调整url不断尝试,就会发现
当我们去掉github.io后缀后,get请求可以得到正常返回
(如果你的仓库评论是空的的话这里返回的应该是一个空的数组[])
回到配置
再次重复下配置,仓库名,OAuth应用名,gittalk配置repo参数都是issue时,运行没有问题
故事结果
本来想测试一下影响gittalk的到底是OAuth应用名还是新建的仓库名的,不过毕竟明天还要考试,也就不了了之.
程序员歪理之一:能用的东西就不要尝试去重构它
最后给大家看一眼我的整个配置
OAuth应用的配置
这之中,比较有争议的是Application name和Homepage URL.因为我是自己的服务器自己的域名,所以跟一部分使用github page的玩家可能不太一样
至少经过我的尝试,Application name设置成issue,Homepage URL设置成 https://issue.github.io, callback URL设置成自己的域名是没有问题的
仓库配置
可以看到这里已经有了一个issue,所以我猜测与gittalk配置的repo参数绑定的应该是这个仓库的名称