0

さて、私はこの問題を解決するために最善を尽くしましたが、それでも面倒です。

サーバー側認証で OAuth を使用することにしました。したがって、私は Facebook のドキュメントに従い、次の手順を実行しました。

  1. Facebook にログインするように人々をリダイレクトするリンクを作成します。https://www.facebook.com/dialog/oauth?client_id={APP_ID}&redirect_uri=http://abc.com/nextStep.php
  2. nextStep.php で、人々を次の場所にリダイレクトします。https://graph.facebook.com/oauth/access_token?code={CODE GENERATED BY FACEBOOK}&client_id={APP_ID}&redirect_uri=http://abc.com/thirdStep.php&client_secret={APP_SECRET}

ステップ 2 に進むと問題が発生します。ページには次のことが示されます。

{
   "error": {
      "message": "Error validating verification code.",
      "type": "OAuthException",
      "code": 100
   }
}

私は長い間グーグルで検索してきました。一部の人々は、redirect_uri の末尾にスラッシュを追加することを提案していますが、機能しません。私は何をすべきか?また、access_token を取得した後にユーザー情報を取得するにはどうすればよいですか? ご協力いただきありがとうございます。

4

1 に答える 1

2

2つのこと:

まず、state最初の URL にパラメータがありません。ドキュメントで SOME_ARBITRARY_BUT_UNIQUE_STRING として説明されている値を作成する必要があります。これは、外部から誰も推測できない一意の ID/ハッシュ/その他のものです。 . (はい、そのパラメータはオプションですが、とにかく使用する必要があります。ドキュメントによると、CSRF の防止に役立ち、したがって重要なセキュリティ対策になるためです。CSRF の意味がわからない場合は、調べてください。)

次に、ステップ 2 では、ユーザーのクライアントをそのアドレスにリダイレクトするのではなく、代わりにそのエンドポイントに サーバー側の呼び出しを行う必要があります。アプリ シークレットをこの URL に入れています (これは間違いではありません。そうしなければなりません)。そのため、ユーザーのブラウザーでその URL を呼び出すと、ユーザーは簡単に取得できます…!

もう一度https://developers.facebook.com/docs/authentication/server-side/から始めることをお勧めします。上から注意深く読んでください。そこに示されている指示に 1 つずつ従えば、間違いはほとんどありません。 -1 …</p>

于 2012-08-04T19:54:35.643 に答える