2011-10-01 39 views
1

我使用Light-OpenID for PHP来验证和检索数据。检索Steam账户的OpenID数据,返回null?

对于我使用http://steamcommunity.com/openid/我的OpenID提供商的网址,如记录here -

蒸汽OpenID提供蒸汽可以作为一个OpenID提供商采取行动。这允许您的应用程序 验证用户的SteamID,而无需 他们在您的网站上输入他们的Steam用户名或密码(该 将违反API使用条款。)只需下载适用于您的语言和平台的OpenID 库的选择,并使用 http://steamcommunity.com/openid作为提供者。返回的声明 ID将包含用户的64位SteamID。声明ID的格式是: http://steamcommunity.com/openid/id/

我指定我的要求,我请求对这些数据阵列 -

$openid->required = array(
         'namePerson', 
         'namePerson/first', 
         'namePerson/last', 
         'namePerson/friendly', 
         'contact/email', 
         'email'); 

我已经确定我的代码工作,已经与其他供应商进行了测试如谷歌和雅虎。

我尝试使用Steam进行登录,我已通过身份验证,但是当我想要使用$openid->getAttributes();检索有关用户的数据时,数组将返回空。

我已经调查了更多,它似乎Steam也通过其Web API using GetPlayerSummaries服务于数据。我想我可以使用来自OpenID帐户授权的64BIT Steam ID来请求数据,但这需要一个API密钥,并在PHP中解析数据。

有没有办法使用OpenID请求这些数据?或者我必须通过Steam的API手动解析所有内容?

回答

1

Steam可以充当OpenID提供者。这使得你的应用程序,而不需要他们在网站上输入自己的蒸汽用户名或密码验证用户SteamID(这将是一个违反API使用条款的。)

这回答了你的问题的一部分? 他们只使用openId进行身份验证 - 仅此而已。在回答其他方面,我应该说 - 是的,你应该从蒸汽获得服务密钥,并使用GetPlayerSummaries方法来获得你想要的。解析将不会有问题,因为它们支持多种格式的返回(我会使用JSON)。