图片有些大,可能会卡.带宽小呜呜呜
起初是在群里看到有人的博客里有个链接,点进去发现可以直接获取原神的玩家信息,顿时好奇,于是去问了作者,顺便嫖到了源码一份.可惜是JS版的,我用不来,但我会PHP啊,我看了一下代码,大部分我都懂,于是就开始了(指新建文件
功能
功能很简单,输入UID并且选择服务器(官服/渠道服)然后返回JSON数据,效果大概这样,也有不带反斜杠版的和UNICODE编码版的,调两个参数就行了.
看起来可能有点乱,但其实就是米游社里看到的那些,还是阉割版的.但也足够了,因为数据量还是比较大的,多起来对我来说很难处理.
返回参数:
- avatars:包含了八个角色的基本信息,如果是自己账号的则是全部角色信息
- stats:神瞳传送点解锁数量和宝箱成就什么的
- city_explorations:返回空
- world_explorations:声望和树的等级
- homes:诚哥壶信息(我没打错
效果图
我为了测试接口的可用性就直接抄了一份,大概这样
代码
代码写的太屑了,就懒得放了.而且据原作者说,米游社更新API就可能失效,需要重新写加密.
function CatchURL($url, $headerArray)
{
// 好麻烦啊...
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headerArray);
curl_setopt($ch, CURLOPT_ENCODING, 'gzip,deflate');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_URL, $url);
// 获取数据和状态码,重新编码后以数组返回
$data = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
$data = mb_convert_encoding($data, 'utf-8', 'GBK,UTF-8,ASCII');
return ['data' => $data, 'status' => $status];
}
鸣谢
感谢戴兜 (原作者)无偿提供的源码和解答
最后一次更新于2022-01-12
0 条评论