Redirecionando a página de permissão do Facebook 'offline_access'
-
23-09-2019 - |
Pergunta
Estou tentando obter a permissão dos usuários para 'offline_access' em um aplicativo IFRAME Facebook codificado com a API Java do Facebook. Entendo que preciso obter uma 'chave de sessão indefinida' depois que os usuários aprovarem meu aplicativo. Atualmente, posso realizar o que quero, mas de uma maneira muito estranha que provavelmente não está correta. Deve haver uma maneira melhor de fazer isso. Quaisquer pensamentos/idéias seriam apreciados !!
O que eu fiz
Em um servlet do meu aplicativo, verifico se o usuário atualmente possui a permissão 'offline_access'. Se o fizerem, eu recebo o URL por Permission.authorizeUrl(Permission.OFFLINE_ACCESS)
. Eu então ligo response.redirect
Para chegar à página de permissões. Dois problemas que estou tendo são:
- A página de permissões redirecionadas é exibida no iframe. Portanto, a barra de menus do Livro do Facebook, etc., são exibidas duas vezes. ou seja, parecendo que um aplicativo está incorporado em outro aplicativo.
- O usuário ficará 'preso' na página de permissão depois de redirecionado para lá. Não poderei obter a 'chave de sessão indefinida' (ligando
client.getCacheSessionKey
) a menos que o usuário volte para uma página no meu aplicativo manualmente.
Possíveis trabalhos de trabalho ??
- Existe uma maneira de abrir/redirecionar para a página de permissões em uma nova janela? Dessa forma, talvez eu possa ter um tópico no meu servlet para verificar se a permissão está definida após o redirecionamento. E então eu posso obter a 'chave de sessão indefinida' depois de tê -la e armazená -la em algum lugar?
- Existe uma maneira de definir um URL para o Facebook ir depois que a permissão está definida? (Muito parecido com as configurações de URL pré-AUTH e pós-auth?) Ou, de alguma forma, assumem o controle após o sucesso da página de permissão?
- Alguma outra maneira de configurar meu aplicativo, talvez? Sendo um novato, eu poderia ter entendido totalmente a ideia ...
Solução
Você já tentou usar o fb:promot-permission
tag in Xfbml? Essa parece a maneira mais simples de obter a permissão concedida, e o XFBML é bastante fácil de configurar.