0

このページで詳しく説明されているFacebookのサーバー側認証を使用しています。

https://developers.facebook.com/docs/howtos/login/server-side-login/#step5

user_birthdayのような拡張アクセス許可を求めていますが、ユーザーが同意すると、コードを取得します

YOUR_REDIRECT_URI?
state=YOUR_STATE_VALUE
&code=CODE_GENERATED_BY_FACEBOOK

しかし、ユーザーが誕生日の提供を拒否した場合でも、このURLを取得したら続行したいと思います

YOUR_REDIRECT_URI?
error_reason=user_denied
&error=access_denied
&error_description=The+user+denied+your+request.
&state=YOUR_STATE_VALUE

そのシナリオでコードを取得する方法を知っている人はいますか、それともユーザーに再度サインインするように依頼する必要がありますが、今回は追加のアクセス許可を要求しませんか?

乾杯、スティーブ

4

1 に答える 1

0

そのシナリオでコードを取得する方法を誰かが知っていますか、またはユーザーに再度サインインするように依頼する必要がありますが、今回は追加のアクセス許可を求めませんか?

ここには 2 つのシナリオがあります。

  • 初めてアプリに接続するようにユーザーに求めています。この時点で、user_birthday許可を与えることだけを拒否することはできません (これは基本的な許可であり、拡張許可ではないため)。アプリに接続するか、接続しないかのどちらかです。

  • ユーザーは以前にアプリに接続したことがありますが、今はuser_birthday許可を求めています。ユーザーがそれを拒否した場合、それは - につながり、パラメーターerror_reason=user_deniedは取得されません。code

2 番目のシナリオでは、サーバー側のフローを使用する場合、アクセス トークンを以前に取得していない限り、ユーザーにもう一度尋ねる (おそらくアクセス許可のセットを減らして) ことが唯一の方法です。それが無効になることはありませんが、以前に付与されたアクセス許可のみが含まれていることは明らかです。

(ユーザーが以前にアプリに接続した場合は、スコープ パラメーターをまったく指定せずに Auth ダイアログを呼び出すことができます。その場合、Facebook はコード パラメーターを使用してアプリに直接リダイレクトします。または、事前にクライアント側でトークンを取得することもできます。 、たとえば FB.getLoginStatus を呼び出します。)

于 2012-11-23T10:04:45.853 に答える