4

私は、原則としてpower.comとそれほど似ていない Web プロジェクトに取り組んでいます。ここでは、ユーザーがシステムに一度登録してから追加できるように、いくつかの異なるソーシャル ネットワーキング サイトを 1 つの Web サイトに統合しようとしています。個人のソーシャル ネットワーキング アカウント (Facebook、MySpace、Orkut など) を、システムが処理できるように構築されている限り多く、1 か所でそれぞれのプロファイル情報を参照できます。

簡単に言えば、ソーシャル ネットワーク アカウントで任意のユーザーを認証する方法が見つからないようです。

私は OpenSocial の仕様とOpenSocial PHP クライアントプロジェクトを詳しく調べてきましたが、すべてが循環的に依存しているように見えるため、何かが欠けているようです。

最初の問題は、テスト目的で MySpace のコンシューマー キーとコンシューマー シークレットを持っているのに、MySpace で 3-legged 認証を実行しようとすると、別のユーザーとしてログインするオプションがないことです。さらに、外部リダイレクトを実行しますが、これはやや望ましくありません (この最終的なソーシャル ネットワーキング "ポータル" のユーザーとして、新しいアカウントを追加するたびにそのリダイレクト プロセスを実行する必要はありません)。

任意のユーザーをプログラムで認証し、アカウント情報へのアクセスを許可するにはどうすればよいですか (できれば外部リダイレクトなしで)。

次に、2-legged 認証では、userId情報を取得する任意のユーザーを識別する (通常は任意の整数) が必要です。しかし、MySpace OpenSocial ID を指定のコンシューマー キーとコンシューマー シークレットと共に入力すると、401 アクセス拒否エラーが表示されます。さらに、今後この ID を使用するには、まずユーザーの認証が必要なようですが、その認証には ID が必要なようです。

何か些細なことを見逃していると確信していますが、私の人生では、それが何であるかを理解することはできません. 助けていただければ幸いです。

4

2 に答える 2

5

技術的には、これは私の答えではありませんが、OpenSocial の開発者は、私の質問に関して次の情報を提供してくれました (強調は私のものです)。

3-legged OAuth は、認証しているサイトへのリダイレクトを中心に構築されており、これを回避する方法はありません。これは最も便利なエクスペリエンスではありませんが、パスワードを非公開に保ちながら、ユーザーが自分のデータを Web サイトと共有できるようにします。 ユーザーが Web サイトのフォームに MySpace のパスワードを入力する必要がある設計はアンチパターンと見なされ、避ける必要があります。 ユーザーの不快感を少し軽減するために、ポップアップ ウィンドウでリダイレクトを試行する可能性があります (現在、PHP クライアントではこれは簡単ではありませんが、opensocial-client-libraries@googlegroups. com の誰かがそのプロセスを手伝ってくれるかもしれません)。

ユーザーを変更できないことに関して、あなたのケースで MySpace が行っていることは、MySpace の Cookie をチェックし、アカウント情報を事前入力していると私は信じています。 MySpace にログインせずにサイトにアクセスしたユーザーの場合は、完全なユーザー名とログイン ボックスの組み合わせを取得する必要があります。「私はこのユーザーではありません」と言って他の資格情報でログインするためのボタンまたはリンクもどこかにあるはずです。

2-legged に関しては、データにアクセスしたいユーザーのプロファイルにインストールされたコンシューマー キー/シークレットに関連付けられたアプリケーションが必要です。2-legged は主に、現在コンテナでソーシャル ガジェットを実行しており、ガジェット レンダーを使用して帯域外でアプリケーション ユーザーのソーシャル データにアクセスしたい開発者を対象としています。 この場合、アプリケーション サーバーはユーザーの OpenSocial ID を (署名された makeRequest から) 既に取得しており、ユーザーは既に MySpace プロファイルにアプリをインストールしています)。

詳細については、http://wiki.opensocial.org/index.php ?title=OAuth_Use_Cases で説明されて います。

基本的に、これにより、外部アプリケーションで 2-legged 認証を使用することができなくなります。2-legged は、このような状況では使用しないように明示的に設計されています。さらに、power.com はユーザーに実際の Orkut/MySpace/etc の資格情報を提供させるというアンチ パターンを実際に採用しているようです。

Cookie をクリアすると、MySpace で認証されました。ただし、Orkut 認証は 3-legged 認証をサポートしていないように見えるため、Orkut 認証がどのように機能するかについて別の質問を続けました。これが私が受け取った応答です:

orkut はこれをサポートすることに関心を持っているため、今後、ユーザーが自分の情報をアプリケーションと「正しく」共有できるようになります。

対応する Two-Legged アプリは、現在の閲覧者の OpenSocial ID をサーバーに転送する必要があります。おそらく、orkut 上のユーザーのセッションを独自のサーバー上のセッションにリンクできるように、自分で生成した認証トークンも一緒に転送する必要があります。 正直なところ、スタンドアロンのログイン システムをサポートするには、おそらく十分に使用できません。

基本的に、いいえ、orkut は、アンチパターンに頼らなければ (少なくとも、まだ) 外部アプリにフックすることはできません。

誰かがこのトピックについてさらに情報を持っている場合は、お気軽に共有してください!

于 2009-10-26T19:13:14.483 に答える
0

パターンはここでも言及されていますhttp://sites.google.com/site/oauthgoog/2leggedoauth/2opensocialrestapi

基本的に、多くのマッシュアップでこの機能が必要になります。

ガジェットを持たないサードパーティのサイトは、ソーシャルネットワークでデータにアクセスするためのエンドユーザーの許可を取得したいと考えています。たとえば、友達リストをダウンロードしたり、アクティビティストリームに投稿する許可を取得したりします。

于 2009-10-28T23:04:51.503 に答える