Typecho B站追番列表
写在前面:这个功能我周末**写了两天,其实页面开发也就一个小时,剩下的时间都在 Debug
,做这个功能我是真的佛了,中间都想放弃了,但是实在是不甘心,周一晚上下班回来搞到两点,终于解决了,虽然最后的方案已经远远不是我最开始的时候采用的方法了。我的 PHP
代码写的很渣,不要喷我,我已经尽力了。先贴上 我的代码
实现思路
好多博客上面都带了追番列表这个东西,自己自然也是想要搞一个,于是打开我B站的个人空间,查看我的追番列表都调用了什么接口,发现是调用了一个 api.bilibili.com
的 get
接口,ok ,那么我只要在我的页面中也调用这个接口拿到数据后渲染出来就好啦。
一波(错误)操作
新建页面模板,先把静态页面的样式写完(照着 B站 的样式来的,我个人觉得蛮好看的),然后写 js
,用 ajax
调用接口,返回数据拼接,然后放进页面中准备好的容器 <div class="sub-list-container"></div>
中,先使用 fiddler
代理到本地的 json
文件进行假数据的调试,没问题,跨域的问题我寻思线上环境使用 nginx
做个代理就可以(T_T 我太天真了),上线之后各种报错,nginx
的配置我是改了又改,依然不得行,中间各种操作试图解决问题我就不详述了,因为最终没有使用这个方法来实现。
正确操作 × 歪打正着 √
在我不断的 Google 着试图找到解决办法的时候,我发现了这篇帖子 php查看B站互相关注的好友 ,我当时就惊了,竟然还有这种方式,而且看起来很靠谱的样子,他的接口和我的接口基本类似,我应该也能用类似的方法来实现。
照着他的方法魔改之后测试,果然 OK 了
遇到的问题
问题:图片防盗链不能访问
解决办法: img 加上 referrerpolicy="no-referrer"
的属性值,并且在页面头部加上<meta name="referrer" content="no-referrer" />
问题:换行导致代码以不可描述的位置结束报错
解决办法:使用正则将生成的字符串中的 \n
都去掉
问题:追番进度不显示
解决办法:加入 cookie 值 SESSDATA 即可,但是这个值需要定期更新呢
小结
中间省略了很多 debug
的细节,我感觉也没必要贴上,毕竟能 Google 到的问题也不算问题