XBox live成就API

8
我相对于XBox开发比较新,想知道学习更多关于XBox Live所暴露的API的最佳去处。特别是关于玩家和游戏成就、玩家细节、其他他们正在玩的游戏等方面的内容。
我已经看到了https://xboxapi.com,虽然它很好,但我不知道它是否足够详细以满足我的需求。
同样,XBox社区开发计划(http://www.xbox.com/en-US/developers/home)似乎非常有用,但需要掌握很多东西。
我希望一些有经验的善良的开发者可以给我一些指引,让我走上正确的道路。
谢谢,

请问您能否描述一下您在应用程序/网站中需要哪些成就方面的数据?目前市场上有很多工具和技术可以使用,我只需要更详细地了解您需要哪些数据。 - Enijar
这主要是为了特定游戏的发布而设计的,因此将针对单个标题进行定位,但了解我可以获得什么将会很有帮助。 - Carl Sargunar
这是一款RPG风格的游戏,所以我猜可以显示玩家的等级或技能或他们在应用程序中的“金币”价值,我可以购买额外的游戏货币,也可以购买游戏内物品。 - Carl Sargunar
3个回答

7
根据您的评论,那么Xbox API将是最适合您的应用程序的API。
您可以通过HTTP GET请求检查用户最近玩过的游戏:
https://xboxapi.com/profile/Focus+Jar

这将返回一个JSON数组,您可以通过此GET请求检查它们是否拥有您想要跟踪成就的游戏:

https://xboxapi.com/achievements/1096157387/Focus+Jar

使用这种方法,您可以使用JavaScript或PHP,而且效果相当不错。我之前在一个应用程序中使用过它。唯一的缺点是XBOX API有时可能会非常缓慢,因此建议缓存一些GET请求的数据。
希望这能对您有所帮助。
更新:现在使用此API需要一个账户。

谢谢Enijar。我担心第三方应用程序或服务是链条中的另一个环节,而我不介意进行开发。难道没有直接的服务或API,XBox自己会给我访问权限,以便我可以进行与XBoxAPI相同的调用吗?速度也是一个问题。 - Carl Sargunar
XBox API调用所公开的信息与我在某些工作中需要的非常相似,但如果有可能去掉中间人,我就不想通过API来获取API。谢谢。 - Carl Sargunar
微软并没有为Xbox提供官方API,但是你可以通过解析每个用户的个人资料HTML来创建自己的API:https://live.xbox.com/en-GB/Profile?gamertag=Focus%20Jar - Enijar
如果您正在使用PHP,这里有一个非常好的HTML解析器:http://simplehtmldom.sourceforge.net/ - Enijar
不好意思,它是一个基于 .net 的应用程序。 - Carl Sargunar
谢谢您的回复,但我认为我需要更深入地研究这个问题,并可能加入一些计划以获得访问权限。 - Carl Sargunar

4
据我所记,Xbox社区开发者计划没有提供太多信息。我原本想获取这些信息,但申请过程需要很长时间,他们仍未回复我。我几年前申请过,我不知道现在是否还有其他人参加该计划。因此,我自己开始了反向工程,寻找获取所需信息的不同方法。
我开始使用PhantomJS编写一个爬虫程序,向登录表单发送所有必需字段,并在登录后下载HTML / JSON。这个方法一直有效,但是我构建的方式是将整个配置文件下载并存储到XML或JSON文件中。对于拥有100多个游戏的人来说,这非常慢。之后不久,我开始寻找其他进入xbox.com的方法。
xboxapi.com的开发者djekl和我是几年前认识的好朋友。网络爬虫是有效的,但也很困难,因为如果HTML / JSON中的某些内容发生更改,就会导致程序崩溃。我已经进行了几次Xbox爬取库的重新设计。
您需要一个HTTP库,能够从响应中捕获cookie,并在下一次请求中将其发送回去。在PHP中,cURL非常擅长处理此操作。我注意到,在C#中,内置的HTTP库不能正确地在请求之间存储cookie,因此您需要手动管理cookie头或使用libcurl的.NET包装器,例如LibCurl.Net。
祝您在项目中好运。很遗憾,我们无法从Microsoft获取此数据的开放API。如果他们担心来自不同应用程序的每小时数千个请求所产生的成本,甚至订阅模型也可以解决问题。

1
感谢您的帮助。听起来他们真的没有为我们开发人员提供足够的帮助。这很愚蠢 - 更多的开发人员=更酷的游戏=更好的体验。 - Carl Sargunar
是的,很遗憾他们不想公开他们的数据。我认为Valve的Steam API是正确的想法。如果微软和索尼也能这样做就好了。 - Cameron Tinker

1
我一直在开发自己的Xbox One和360 API,很快将提供一些用于Beta访问的密钥。如果您仍在寻找此类数据或只是想聊聊,请随时加入下面链接的gitter频道。
聊天:https://gitter.im/playr-io/one

考虑到您自己的API根据您自己的话还不能供普通公众或提问者使用,这样的回答几乎没有任何用处。 - user308323
实际上,我正在为他们提供访问权限,这对他们很有用... 他们还要求提供信息/建议,我有很多,超出了此处答案的范围。可能应该补充说明他询问了数据的细粒度,我有文档显示确切的响应,这可能有助于回答他关于此方面的问题。 - leafybasil
它仍然不能算是一个有用的答案,主要是因为它缺乏内容。如果你甚至链接到你的API手册 - 这是公开可用的 - 那么就可能看到它是否符合提问者的需求。 - user308323
这听起来更像是个人观点而不是事实。他们要求“有帮助的”开发者提供方向,我已经提供了一个可以获取尽可能多或尽可能少信息的地方。向他们提供API访问权限似乎正是他们想要的。 - leafybasil
他们听起来非常像是在请求一次关于可用数据的总体状态的对话,来自各种来源,而不仅仅是数据本身。我提供那个对话。我会让@carlsargunar自己决定。 - leafybasil

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接