【发布时间】:2011-11-29 00:13:53
【问题描述】:
我正在使用 Light-OpenID for PHP 来验证和检索数据。
对于我的 OpenID 提供程序 URL,我使用的是 http://steamcommunity.com/openid/,如文档所述 here-
Steam OpenID 提供者 Steam 可以充当 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');
我已确保我的代码有效,并已与其他提供商(例如 Google 和 Yahoo)进行了测试。
我尝试使用 Steam 登录,我通过了身份验证,但是当我想使用 $openid->getAttributes(); 检索有关用户的数据时,数组返回空。
我进行了更多调查,Steam 似乎也通过其Web API using GetPlayerSummaries 提供数据。我想我可以使用 OpenID 帐户授权中的 64BIT Steam ID 来请求数据,但这需要一个 API 密钥,并在 PHP 中解析数据。
有没有办法使用 OpenID 请求这些数据?还是我必须通过 Steam 的 API 手动解析所有内容?
【问题讨论】: