Mojang API - 检索用户名的最新 UUID



我目前正在尝试使用cURL和PHP进行API调用,以检索使用用户名的最新用户的UUID。

使用 Mojang API:

用户名 -> UUID

例如,在进行 API 调用时:用户"巧克力"(根据 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 用户名

有没有解决方法来实现这一点?

提前感谢,

这应该是您正在搜索的 API: https://api.mojang.com/users/profiles/minecraft/<username>

对此 URL 的GET请求应告知当前使用指定用户名的帐户的 UUID,如果此时任何人都未使用该名称,则提供 HTTP 状态代码 204。

在这种情况下,若要获取最新用户,应向该 URL 发出另一个请求,但这次将?at=<currentUnixTimestampInSeconds - 30 days>作为查询字符串添加到请求中。

如果这再次为您提供 HTTP 204,请尝试 60 天前的时间戳,依此类推。重复此操作,直到获得 UUID 或时间戳低于 1423008000,因为这是启用名称更改的时间。

最新更新