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

时间:2016-01-21 12:29:03

标签: php api curl minecraft

我目前正在尝试使用带有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   用户名

是否有解决方法来实现这一目标?

提前致谢,

1 个答案:

答案 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,因为这是在启用名称更改时。