Я использую 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?