Как получить профиль Google с помощью DotNetOpenAuth? - PullRequest
2 голосов
/ 06 декабря 2010

Я пытаюсь использовать DNOA для поддержки OpenId для моего приложения, чтобы оставить решение Janrain, которое я использовал до сих пор. Проблема в том, что у моих пользователей есть идентификаторы на основе профиля (https://www.google.com/profiles/11223344556677...), а идентификатор, полученный DNOA, имеет вид https://www.google.com/accounts/o8/id?id=xxxxxyyyyyafgsdgfsdhg.

Как получить информацию о профиле? Через обмен атрибутами? а какой атрибут? Или есть какой-то другой API? Я видел, что на странице входа есть провайдер для Google и другой для профиля Google, так что у кого-то здесь есть ответ ...:)

Обновление: конечная точка для профилей Google - (https://www.google.com/profiles/)

Итак ... теперь вопрос скорее в том, как получить идентификационный номер профиля Google

Ответы [ 2 ]

3 голосов
/ 06 декабря 2010

номер идентификатора профиля Google извлекается с помощью атрибута "http://schemas.openid.net/ax/api/user_id". Установите для этого значения

В DNOA,

var fetch = new FetchRequest();

fetch.Attributes.AddRequired("http://axschema.org/contact/country/home");
fetch.Attributes.AddRequired("http://axschema.org/contact/email");
fetch.Attributes.AddRequired("http://axschema.org/namePerson/first");
fetch.Attributes.AddRequired("http://axschema.org/namePerson/last");
fetch.Attributes.AddRequired("http://axschema.org/pref/language");
fetch.Attributes.AddRequired("http://schemas.openid.net/ax/api/user_id");

Забавно, что, если я опущу некоторые из этих атрибутов, я не верну api / user_id. Не могу понять эту часть, но мне сейчас все равно.

0 голосов
/ 06 декабря 2010

У Google на самом деле есть 2 (а может и больше) провайдеров openid - аккаунты и профили. Я действительно не знаю, почему их 2, но у всех владельцев аккаунта Google нет профиля Google.

Существует также большая разница между ними. Идентификатор openid в профилях Google одинаков везде, где вы его используете. Идентификатора Аккаунтов Google нет! При входе в учетные записи Google в качестве поставщика OpenID вы получите разные идентификаторы для каждого домена. Это новая (я думаю, необязательная) функция OpenID, но я не могу вспомнить ее имя в данный момент.

Учитывая все вышесказанное, я не думаю, что Google предоставит вам какие-либо данные, которые соответствуют идентификатору аккаунта Google и идентификатору профилей Google.

Надеюсь, это поможет.

...