特定のユーザー拡張アクセス許可を必要とするページ タブ アプリを作成しています。
私は PHP と JavaScript SDK の両方を使用しています。私が最初に試したのはFB.login()
、拡張アクセス許可を含むスコープをリストする単純な . 問題は、ユーザーが拡張アクセス許可を拒否した場合でも、ログインしてアプリに正常に入ることができることです。この後、ユーザーをログイン ページにリダイレクトして再度アクセス許可を要求しますが、ここからは を呼び出すたびFB.login()
にポップアップが表示され、すぐに消えます。ユーザーは、アクセス許可をチェックしてキックするスクリプトに入ることができます。ユーザーは再びログイン ページに戻ります。つまりFB.login()
、拡張アクセス許可が付与されていなくても、すべての必須アクセス許可が既に付与されている場合は、アクセス許可をまったく要求しません。
このアプリを$facebook->getLoginUrl()
使用すると、Facebook の外部で、必要な拡張アクセス許可を渡し、ユーザーを外部の Facebook ログイン フォームにリダイレクトすることができます。Them facebook は不足している拡張アクセス許可を要求しようとします。ユーザーが拒否すると、ログイン ページに戻り、ユーザーが最終的にアクセス許可を付与するか、サイトを離れるまで、これを繰り返すことができます。これはいいです、これはうまくいきます。
問題は、私のアプリが実際にはページタブにあり、私が言ったように、FB.login()
メソッドがどちらの方法でも機能せず、ユーザーを IFrame 内の Facebook ログインフォームにリダイレクトしてもまったく機能しないように見えることです。 (FacebookのIFrameでfacebook.com外部ログインフォームを見る機会がなくても、同じページにリダイレクトされているようです:P)、また、(IFrameだけでなく)ページ全体をリダイレクトしようとしましたwindow.top.location.href = loginUrl
。 loginUrl には facebook 内のページ タブへの URL (によって生成されます$facebook->getLoginUrl($params)
) がありますが、その場合、別の facebook 領域に完全にリダイレクトされますが、redirect_uri がアプリによって所有されていないというエラーが表示されます。リダイレクト uri には facebook.com が含まれており、アプリがあるタブを指すだけです。
そのため、ページ タブ アプリの場合に必要な拡張アクセス許可をユーザーに要求し続ける方法が見つかりませんでした。働きたいものを手に入れる方法を知っている人はいますか?FB.login()
デフォルトでは行わないように、ダイアログに拡張アクセス許可を強制的に要求させる方法はありますか?