Soluções sensatas para a remoção da permissão offline_access

Estou voltando a construir um aplicativo FB depois de algum tempo longe da plataforma FB e vejo que a antiga permissão offline_access foi removida e substituída por tokens longos (ish) -expiry [1].

Então, agora parece que qualquer aplicativo externo que precise enviar dados para o Facebook com base em, digamos, um agendamento ou alguma atividade no aplicativo externo precisará lidar com o token de acesso longo expirado. Isso se torna mais frustrante, porque agora um usuário desconectado do FB também mata qualquer token de expiração longa [2], enquanto antes, offline_access continuava ativo mesmo quando o usuário estava desconectado.

Eu ainda estou no estágio de pensar em uma solução, mas duas idéias vêm à mente:

1) Sempre que meu aplicativo contatar um usuário com integração FB, ele será solicitado a clicar em um link que acionará uma nova autenticação com o FB para obter um novo token de acesso longo. Meus usuários geralmente são contatados várias vezes durante a vida útil de um token de acesso longo, portanto,devemos efetivamente continue renovando o token de acesso longo pelo tempo que for necessário (mesmo que isso adicione algum atrito irritante ao meu aplicativo)

2) Porque não posso garantir que 1) funcionará sempre (devido a usuários não clicarem no link de re-autenticação na notificação por e-mail do meu aplicativo ou desconectarem-se do Facebook, por exemplo) também terei que lidar com as interações do FB com falha colocando-os em uma fila de espera e enviando um email ao usuário para pedir explicitamente que eles concedam novamente um token de acesso longo. Não é legal, mas não vejo outra opção. Se eles não responderem à solicitação depois que X tentar pedir permissão para que ela seja concedida novamente, só terei que anular a tarefa e enviá-la por e-mail explicando que é devido a uma limitação do FB, não ao meu aplicativo. Mais uma vez, não é legal.

Alguém precisou criar soluções melhores para manter a capacidade de interagir com a conta de um usuário com permissões de autenticação / explícitas? Eu gostaria de ouvir o que você fez.

(Isso tudo está me esperando releitura do FB ToS, é claro - é totalmente possível que isso seja contra as regras, o que seria ainda mais frustrante)

EDITAR / ATUALIZAR: os dados que eu preciso enviar são imagens para um álbum de fotos que chegará ao meu servidor de várias fontes e será então enviado para o álbum de um usuário apropriado (com permissão pré-concedida, é claro). Não posso garantir nenhuma interação com o usuário final na Web no momento em que as imagens atingem meu servidor para que o usuário final me conceda um novo token de curta duração. Basicamente,offline_access realmente teria sido ideal para este OMI.

UPDATE 2: NB: é realmente fundamental para o meu caso de uso que o usuário não esteja necessariamente usando meu aplicativo ou Facebook quando o token precisar ser concedido ou estendido.

[1]https://developers.facebook.com/roadmap/offline-access-removal/ [2]http://developers.facebook.com/blog/post/2011/05/13/how-to--handle-expired-access-tokens/

questionAnswers(3)

yourAnswerToTheQuestion