我目前正在尝试使用带有PHP的cURL进行API调用,以检索已使用用户名的最新用户的UUID。
使用Mojang API:
用户名 - > UUID时间
例如,在进行API调用时:用户' Chocolates '(已由四个用户根据NameMC使用)我获得了第一个使用该用户的用户的UUID名。
代码:
public function api_Changedto($uuid, $username)
{
$ch = curl_init();
//Set other default cUrl settings
curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt( $ch, CURLOPT_HEADER, 0);
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt( $ch, CURLOPT_POST, 0);
curl_setopt( $ch, CURLOPT_URL, "https://api.mojang.com/user/profiles/" . $uuid . "/names");
curl_setopt( $ch, CURLOPT_CAINFO, "certificates/curl/cacert.pem");
$response = curl_exec($ch);
if($response) {
$decoded = json_decode($response);
$match = false;
foreach ($decoded as $userInfo){
if($match){
$changedTo = ($userInfo->changedToAt + 3196800000) / 1000;
break;
}else{
if(strtolower($username) == strtolower($userInfo->name)){
$match = true;
}
}
}
}
return $changedTo;
}
?at = 0可用于获取原始用户的UUID 用户名
是否有解决方法来实现这一目标?
提前致谢,
答案 0 :(得分:0)
这应该是您要搜索的API:
https://api.mojang.com/users/profiles/minecraft/<username>
对此网址的GET
请求应该告诉您当前使用指定用户名的帐户的UUID,或者如果此时任何人都没有使用该名称,则会显示HTTP状态代码204。
要获得此情况下的最新用户,您应该向该URL发出另一个请求,但这次您将?at=<currentUnixTimestampInSeconds - 30 days>
作为查询字符串添加到请求中。
如果再次为您提供HTTP 204,请在60天前尝试时间戳,依此类推。重复此操作,直到获得UUID或时间戳低于1423008000,因为这是在启用名称更改时。