【问题标题】:Retrieving OpenID data of a Steam account, returning null?检索 Steam 帐户的 OpenID 数据,返回 null?
【发布时间】: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 手动解析所有内容?

【问题讨论】:

    标签: php oauth openid


    【解决方案1】:

    Steam 可以充当 OpenID 提供者。这允许您的应用程序验证用户的 SteamID,而无需他们在您的网站上输入其 Steam 用户名或密码(这将违反 API 使用条款。)

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

    【讨论】:

      猜你喜欢
      • 2012-01-11
      • 1970-01-01
      • 1970-01-01
      • 2014-02-03
      • 1970-01-01
      • 2016-02-21
      • 2018-06-16
      • 2013-09-11
      • 1970-01-01
      相关资源
      最近更新 更多