之前群里有人问能不能做一个 Playstation 游戏列表插件,我用闲暇时间研究了下 Sony 的接口,并写了套插件出来。

Demo

原理

PSN 的 API 是不公开的,Github 上有人通过抓 Playstation 手机 App 的 http 报文整理了一套 API 接口出来,具体内容参阅这些仓库:

  1. PlayStation-Trophies
  2. PsnApiWrapperNet

经过测试,有些接口还能正常工作,我们可以利用这些接口做些事情。

结构

这次写的东西分成三部分,第一个是纯 PHP 程序,提供 Rest 风格的 PSN 数据访问接口,另外两个是基于 WordPress 的插件,主要用来设置账号信息与显示页面。它们的关系如下图所示:

对 API 访问的部分转成抽成一个独立的服务来写,主要是吸取了追番插件的教训。追番插件使用了非公开的 API,当番剧站点的 API 接口发生变动时,所有的使用者都会出现无法访问的问题。

这次把访问第三方站点 API 的结构抽出来做成单独的程序,不仅可以给其他程序提供统一的数据结构封装,同时也方便在 API 变动时进行修改。

拆分账号等个人资料设置与前端展示页为两个插件,同样是根据追番插件的反馈而来。有些人只需要拿标准化 json 数据,不需要画蛇添足的前端输出;而有些人自己想改前端,却不知道如何下手。这次拆成两个,使用者就可以根据需要,用啥装啥了。

写访问接口的时候,使用了一套 PHP Rest 风格框架。如果不出意外,以后其他 API 也会在这套框架下开发。

为什么使用奖杯列表

索尼的 API 是非公开的,目前只有奖杯列表有稳定且完整的游戏数据输出。

之前试过 GameList 接口,发现只能返回 PS4 及 PS5 的游戏数据。一周之后,这个接口访问权限还发生了变化,导致我拿不到数据。

获取插件

插件仍处于开发与测试中,且随着索尼 API 的变化,插件可能很快就会失效

上面两个插件为 WordPress 端插件,想要显示列表,还需要后端的 PSN Wrapper 接口程序访问权限。接口程序将于开发完成后放出,且大概率不再继续维护。

群内有一个测试服务器可供使用,想参与其中或立刻使用接口的小伙伴可以加群讨论。

既然可能很快失效,为啥还要放出来

抛砖引玉,技术交流。

梓喵出没博客(azimiao.com)版权所有,转载请注明链接:https://www.azimiao.com/7957.html
欢迎加入梓喵出没博客交流群:313732000

我来吐槽

*

*