开放的编程资料库

当前位置:我爱分享网 > PHP教程 > 正文

Xbox Live 玩家 API

撇开我的神枪手身份不谈,我一直感到惊讶沮丧,因为微软从未为有关用户、他们玩的游戏以及游戏中的统计数据的大量信息提供 API。也就是说,我想公开羞辱我用我的狙击步枪洗礼的每一个 n00b。我最近在 XboxLeaders.com 上发现了一个很棒的游戏玩家 API。虽然他们的 API 无法告诉我我在《黑色行动 II》中获得的头衔和徽章,但我可以获得一些关于我的用户、我的状态以及我最近玩过的游戏的相关信息。

Xbox API

XboxLeaders 目前在四个 API 端点提供三种格式(XML、JSON 和序列化 PHP)的数据,以从以下位置检索信息:

  • GET profile/:gamertag – 返回与 Xbox LIVE 上所请求玩家的个人资料相关的数据。
  • GET games/:gamertag – 返回与请求的玩家玩过的游戏有关的数据。返回除成就外的所有游戏数据。
  • GET achievements/:gamertag/:gameid – 返回请求的玩家和游戏的所有成就数据。
  • GET friends/:gamertag – 返回所请求玩家的所有好友数据。如果好友列表是私有的,将会出错。

这些端点允许开发人员访问所有可用的重要游戏玩家特定数据。 XboxLeaders 还在研究用于发送消息的 POST 实现。此 API 可能需要授权,但该 API 目前对任何想使用它的人开放。

调用配置文件 API 将返回以下信息:

{
	"Data": {
		"Tier": "gold",
		"IsValid": 1,
		"IsCheater": 0,
		"IsOnline": 1,
		"OnlineStatus": "Online playing COD: Black Ops II - Search & Destroy\r\non Overflow",
		"XBLLaunchTeam": 0,
		"NXELaunchTeam": 0,
		"KinectLaunchTeam": 0,
		"AvatarTile": "https://avatar-ssl.xboxlive.com/global/t.fffe07d1/tile/0/2000b",
		"AvatarSmall": "http://avatar.xboxlive.com/avatar/dwalsh83/avatarpic-s.png",
		"AvatarLarge": "http://avatar.xboxlive.com/avatar/dwalsh83/avatarpic-l.png",
		"AvatarBody": "http://avatar.xboxlive.com/avatar/dwalsh83/avatar-body.png",
		"Gamertag": "dwalsh83",
		"GamerScore": 310,
		"Reputation": 20,
		"Name": "David Walsh",
		"Motto": "Watch your head.",
		"Location": "Madison, WI, US",
		"Bio": "There is, and only can be, Call of Duty."
	},
	"Stat": "ok",
	"In": 2.504,
	"Authed": "false",
	"AuthedAs": null
}

处理的数据量很大。其他 API 调用将返回类似的相关信息。

使用 Xbox Gamer API

那么可以使用这个 Xbox Gamer API 创建什么?这取决于你的想象力!让我使用这个很棒的 AP​​I 来创建玩家卡!

<?php

	// Vars
	$gamertag = 'dwalsh83';

  /* 
    Would be better to use cURL, but for briefness of code, using file_get_contents
  */

	// Get profile information
	$profile = json_decode(file_get_contents('http://www.xboxleaders.com/api/profile.json?gamertag='.$gamertag));
  $profile = $profile->Data;
  
	// Get game information
	$games = json_decode(file_get_contents('http://www.xboxleaders.com/api/games.json?gamertag='.$gamertag));
	$games = $games->Data;
	
?>
<!DOCTYPE html>
<html>
<head>

<style>
  
  .gamercard {
    border: 1px solid #bdbec1;
    padding: 10px;
    width: 600px;
    font-family: arial, sans-serif;
    font-size: 12px;
    color: #bdbec1;
    
    background-image: -webkit-linear-gradient(#ddd, #fff, #e9fdce);
    background-image: -moz-linear-gradient(top, #ddd, #fff, #e9fdce);
    background-image: -ms-linear-gradient(#ddd, #fff, #e9fdce);
    background-image: -o-linear-gradient(#ddd, #fff, #e9fdce);
    background-image: linear-gradient(#ddd, #fff, #e9fdce);
  }
  
  .gamercard img {
    display: block;
  }
  
  .gamercard .avatar {
    float: right;
    width: 150px;
    height: 300px;
    margin: -60px 0 0 50px;
  }
  
  .gamercard h1 {
    font-weight: normal;
    color: #78BB58;
  }
    
    .gamercard h1 img {
      display: inline-block; 
      padding-right: 10px;
      width: 24px; 
      height: 24px;
    }
      
  .gamercard h2 {
    color: #111;
    font-size: 16px;
    font-weight: normal;
    margin-top: 15px;
  }
  
  .gamercard ul {
    list-style-type: none;
  }
    .gamercard ul li {
      padding-top: 8px;
    }
      
      .gamercard ul li strong {
        color: #666;
      }
      
  .gamercard ul.games li {
    display: inline-block; 
    margin-right: 20px;
    text-align: center;
    font-weight: bold;
    width: 85px;
    vertical-align: top;
  }
    .gamercard ul.games li img {
      margin: 0 auto;
      width: 85px;
    }
  
  .gamercard a {
    color: #78bb58;
  }
  
  .gamercard .clear {
    clear: both;
  }
  
</style>
</head>
<body>

	<!-- gamercard -->
<div >
  
  <!-- profile image -->
  <img src="<?php echo $profile->AvatarBody; ?>" alt="<?php echo $profile->Gamertag; ?>"  />

  <!-- gamer name -->
  <h1><img src="<?php echo $profile->AvatarTile; ?>" alt="<?php echo $profile->Gamertag; ?>" /><?php echo $profile->Gamertag; ?></h1>

  <!-- personal info -->
  <h2>The Legend</h2>
  <ul>
    <li><strong>Name:</strong> <?php echo $profile->Name; ?></li>
    <li><strong>Bio:</strong> <?php echo $profile->Bio; ?></li>
    <li><strong>Location:</strong> <?php echo $profile->Location; ?></li>
    <li><strong>Motto:</strong> <?php echo $profile->Motto; ?></li>
    <li><strong>Online:</strong> <?php echo $profile->IsOnline ? 'Online' : 'Offline'; ?></li>
    <li><strong>Status:</strong> <?php echo $profile->IsOnline ? $profile->OnlineStatus : '(none)'; ?></li>
  </ul>

  <?php if(count($games->PlayedGames)): ?>
  <!-- recent games -->
  <h2>Recent Games</h2>
  <ul >
    <?php foreach($games->PlayedGames as $game): ?>
       <li><a href="<?php echo $game->Url; ?>"><img src="<?php echo $game->BoxArt; ?>" alt="<?php echo $game->Title; ?>" /></a><br /><?php echo $game->Title; ?></li> 
    <?php endforeach; ?>
  </ul>
  <?php endif; ?>
  
  <div ></div>
</div>
</body>
</html>

这是一张简单的玩家卡片。一个很棒的附加功能是一个横向滚动的游戏列表,当你点击每个游戏时可能会显示成就。无论如何,XboxLeaders 的 API 将为您提供所需的信息。

XboxLeaders 增强的 Xbox Gamer API 易于使用、可靠且独特。该 API 填补了 Microsoft 因不提供公共 Xbox API 而造成的空白,并且做得非常好。与往常一样,尽最大努力缓存请求,以保持低服务器负载和快速访问您的站点。如果您使用此 API 创建了一些东西,请告诉我 – 我很乐意看到它!

未经允许不得转载:我爱分享网 » Xbox Live 玩家 API

感觉很棒!可以赞赏支持我哟~

赞(0) 打赏