Facebook Java API でコーディングされた iFrame Facebook アプリケーションで、「offline_access」に対するユーザーの許可を取得しようとしています。ユーザーがアプリケーションを承認した後、「無期限のセッション キー」を取得する必要があることを理解しています。現在、私は自分がやりたいことを達成できますが、おそらく正しくない非常に厄介な方法です. これを行うためのより良い方法があるはずです。任意の考え/アイデアをいただければ幸いです!!
私がしたこと
アプリのサーブレットで、ユーザーが現在「offline_access」権限を持っているかどうかを確認します。もしそうなら、私は によって URL を取得しPermission.authorizeUrl(Permission.OFFLINE_ACCESS)
ます。response.redirect
次に、アクセス許可ページにアクセスするために呼び出します。私が抱えている2つの問題は次のとおりです。
- リダイレクトされた権限ページが iFrame 内に表示されます。そのため、Facebookブックのホームメニューバーなどが2重に表示されています。つまり、アプリが別のアプリに埋め込まれているように見えます。
- ユーザーは、そこにリダイレクトされると、許可ページに「スタック」します。
client.getCacheSessionKey
ユーザーが手動でアプリのページに戻らない限り、( を呼び出して)「無期限のセッション キー」を取得することはできません。
考えられる回避策??
- 新しいウィンドウで権限ページを開く/リダイレクトする方法はありますか? そうすれば、サーブレットにスレッドを作成して、リダイレクト後にパーミッションが設定されているかどうかを確認し続けることができます。そして、一度取得してどこかに保存すると、「無期限のセッションキー」を取得できますか?
- アクセス許可が設定された後に Facebook がアクセスする URL を設定する方法はありますか? (認証前と認証後の URL 設定によく似ていますか?) または、パーミッション ページが表示された後に何らかの形で制御を取得しますか?
- 私のアプリをセットアップする他の方法はありますか?? 初心者なので、完全に見当違いだったかもしれません…