Typecho B站追番列表

进击的学霸...大约 2 分钟

写在前面:这个功能我周末**写了两天,其实页面开发也就一个小时,剩下的时间都在 Debug ,做这个功能我是真的佛了,中间都想放弃了,但是实在是不甘心,周一晚上下班回来搞到两点,终于解决了,虽然最后的方案已经远远不是我最开始的时候采用的方法了。我的 PHP 代码写的很渣,不要喷我,我已经尽力了。先贴上 我的代码open in new window

实现思路

好多博客上面都带了追番列表这个东西,自己自然也是想要搞一个,于是打开我B站的个人空间,查看我的追番列表都调用了什么接口,发现是调用了一个 api.bilibili.comget 接口,ok ,那么我只要在我的页面中也调用这个接口拿到数据后渲染出来就好啦。

一波(错误)操作

新建页面模板,先把静态页面的样式写完(照着 B站 的样式来的,我个人觉得蛮好看的),然后写 js ,用 ajax 调用接口,返回数据拼接,然后放进页面中准备好的容器 <div class="sub-list-container"></div> 中,先使用 fiddler 代理到本地的 json 文件进行假数据的调试,没问题,跨域的问题我寻思线上环境使用 nginx 做个代理就可以(T_T 我太天真了),上线之后各种报错,nginx 的配置我是改了又改,依然不得行,中间各种操作试图解决问题我就不详述了,因为最终没有使用这个方法来实现。

正确操作 × 歪打正着 √

在我不断的 Google 着试图找到解决办法的时候,我发现了这篇帖子 php查看B站互相关注的好友open in new window ,我当时就惊了,竟然还有这种方式,而且看起来很靠谱的样子,他的接口和我的接口基本类似,我应该也能用类似的方法来实现。

照着他的方法魔改之后测试,果然 OK 了

遇到的问题

问题:图片防盗链不能访问

解决办法: img 加上 referrerpolicy="no-referrer" 的属性值,并且在页面头部加上<meta name="referrer" content="no-referrer" />

问题:换行导致代码以不可描述的位置结束报错

解决办法:使用正则将生成的字符串中的 \n 都去掉

问题:追番进度不显示

解决办法:加入 cookie 值 SESSDATA 即可,但是这个值需要定期更新呢

小结

中间省略了很多 debug 的细节,我感觉也没必要贴上,毕竟能 Google 到的问题也不算问题

评论
  • 按正序
  • 按倒序
  • 按热度