2

これまで使用してきた Janrain ソリューションを残すために、アプリへの OpenId サポートに DNOA を使用しようとしています。問題は、これまでのユーザーがプロファイル ベースの識別子 (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プロファイルID番号を取得する方法です

4

2 に答える 2

3

Google プロファイルの ID 番号は、「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 が返されません。その部分は理解できませんが、現時点ではあまり気にしません。

于 2010-12-06T15:51:23.160 に答える
0

Google には、実際にはアカウントとプロファイルの 2 つ (おそらくそれ以上) の openid プロバイダーがあります。2 つある理由はよくわかりませんが、すべての Google アカウント所有者が Google プロフィールを持っているわけではありません。

また、両者には大きな違いがあります。Google プロフィールの openid 識別子は、どこで使用しても同じです。Google アカウント ID ではありません。OpenID プロバイダとして Google アカウントにログインすると、ドメインごとに異なる ID が取得されます。これは OpenID の新しい (オプションだと思う) 機能ですが、現時点ではその名前を思い出せません。

とはいえ、どの Google アカウント ID がどの Google プロフィール ID に関連付けられているかについて、Google がデータを提供するとは思えません。

これが何らかの形で役立つことを願っています。

于 2010-12-06T15:52:22.207 に答える