Получать данные OpenID учетной записи Steam, возвращая ноль? - PullRequest
1 голос
/ 01 октября 2011

Я использую Light-OpenID для PHP для аутентификации и получения данных.

Для моего URL-адреса провайдера OpenID я использую http://steamcommunity.com/openid/,, как указано в документации здесь -

Steam Поставщик OpenID Steam может выступать в качестве поставщика OpenID.Это позволяет вашему приложению аутентифицировать SteamID пользователя, не требуя от него ввода своего имени пользователя или пароля Steam на вашем сайте (что будет нарушением Условий использования API). Просто загрузите библиотеку OpenID для вашего языка и выбранной вами платформы и использования.http://steamcommunity.com/openid в качестве поставщика.Возвращенный заявленный идентификатор будет содержать 64-битный SteamID пользователя.Формат заявленного идентификатора: 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, используя GetPlayerSummaries .Я полагаю, что я мог бы использовать 64-битный Steam ID из авторизации учетной записи OpenID для запроса данных, но для этого потребовался бы ключ API и синтаксический анализ данных в PHP.

Есть ли способ запросить эти данные с помощью OpenID?Или мне нужно вручную все анализировать через API Steam?

1 Ответ

1 голос
/ 01 октября 2011

Steam может выступать в качестве поставщика OpenID.Это позволяет вашему приложению аутентифицировать SteamID пользователя, не требуя от него ввода имени пользователя или пароля Steam на вашем сайте (что будет нарушением Условий использования API.)

Это частично отвечаетваш вопрос?Они используют openId только для аутентификации - больше ничего.В ответ на другую часть я должен сказать - да, вы должны получить сервисный ключ от Steam и использовать метод GetPlayerSummaries, чтобы получить то, что вы хотите.Синтаксический анализ не будет проблемой, потому что они поддерживают много форматов для возврата (я бы использовал JSON).

...