É 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

Relatório de bug do Facebook

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)

questionAnswers(2)

yourAnswerToTheQuestion