É possível estender tokens do Facebook com extendAccessTokenIfNeeded em um aplicativo Android?
Eu acho que isso pode afetar muitos desenvolvedores do Facebook / Android e ainda assim não parece haver muita discussão sobre o assunto ...
Minha pergunta
Alguém atualizou com êxito um token usando a função extendAccessTokenIfNeeded? Se você teve sucesso, qual versão o dispositivo (ou emulador) estava executando?
fundo
Recebi um e-mail do Facebook dizendo que a permissão offline_access será descontinuada a partir de 1º de maio de 2012 e o Facebook recomendou a atualização para o SDK mais recente. Bem.
Fiz o upgrade para o SDK mais recente, o aplicativo oficial do Facebook está instalado no meu dispositivo e (eventualmente!) O Single Sign On parece estar funcionando bem. Estou recebendo tokens de 60 dias, o que é bom.
Problemas iniciados quando tentei usar extendAccessTokenIfNeeded (Contexto de contexto, ServiceListener serviceListener). Eu não consegui atualizar meus tokens por um tempo de expiração maior. Esperei 24 horas entre as tentativas, mas o token não foi atualizado. A única maneira de obter um token atualizado é fazer logout e login. Isso também aconteceu quando usei o projeto de exemplo "Hackbook".
A resposta mais óbvia é que estou fazendo algo errado, mas,relatório de erro foi submetido ao Facebook dizendo que ... "shouldExtendAccessToken praticamente sempre retornará false." Este relatório recebeu a prioridade "wishlist".
Alternativas para o extendAccessTokenAsNeeded ()
NoDocumentação do Facebook sobre deprecação de offline_access Os tokens podem ser estendidos usando a API do Graph. No entanto, isso tem odesvantagem de precisar do "App Secret" sendo incluído no URL. Uma vantagem é que o usuário não precisa ter o aplicativo oficial do Facebook instalado em seu dispositivo.
Outras ideias e preocupações
Alterando a função extendAccessTokenIfNeeded em Facebook.java para sempre retornar true, acho que atualizei uma vez. (A razão que eu digo "pensar" é porque não vai repetir o comportamento e eu suspeito que tenho que esperar mais 24 horas antes de qualquer chance de outro sucesso)
Percebo que o Hackbook exigeAndroidHttpClient para ser importado. Isso só está disponível para a API 8 em diante. Isso significa que o SSO do Facebook (especialmente a atualização de tokens) provavelmente só funcionará em dispositivos com a API 8 e posterior?
oFacebook.apk incluído no SDK é bem antigo. Talvez seja por isso que os tokens não são atualizados em emuladores que executam a API 8 e posterior?
E, por último, tudo isso se relaciona apenas com as pessoas que têm o aplicativo oficial do Facebook instalado! Outro método precisa ser concluído para as pessoas sem o aplicativo oficial do Facebook (apenas reclamando agora!)
Links relevantes do Facebook
Facebook-Android-SDK no GitHub
Tutorial do Android no Facebook
Reprecação de permissão do Facebook offline_access
Perguntas relacionadas com estouro de pilha
Token de acesso ao Facebook de 60 dias e Descontinuado Offline_Access
Token de acesso do Facebook não pode ser estendido
Como o offline_access funcionaria após a reprovação depois de 1º de maio?
Token de acesso do Facebook não pode ser estendido
Protegendo o segredo do aplicativo para uso do extendAccessToken (Java / Android)