API do Facebook para Android: como obter informações estendidas sobre os amigos do usuário?
Estou trabalhando em um pequeno aplicativo Android, tentando adicionar suporte ao Facebook.
Problema principal: posso obter apenas informações básicas sobre os amigos do usuário (id, nome). Lista de permissões de aplicativos (offline_access está aqui apenas para teste, será removido em breve):
String[] sPermissions = { "friends_about_me"
, "friends_birthday"
, "friends_location"
, "friends_website"
, "offline_access" };
mLoginButton.init(this, mFacebook, sPermissions);
A solicitação a seguir funciona bem - retorna uma lista de id: pares de nomes,
mAsyncRunner.request("me/friends", new SampleRequestListener());
mas se eu mudar para obter mais informações
mAsyncRunner.request("me/friends?fields=id,name,birthday,hometown", new SampleRequestListener());
servidor retorna erro "Um token de acesso ativo deve ser usado para consultar informações sobre o usuário atual." Testei essas solicitações da API do Graph usando o navegador - ambas funcionam conforme o esperado.
Pequena observação: estou usando o cetificate de depuração padrão para assinar a aplicação e adicioná-lo como hash de aplicativo do Facebook de acordo com as instruções do Facebook:
Registre o hash da chave Android do seu aplicativo. Isso é usado pelo Facebook para garantir que outro aplicativo não possa se passar por ele ao conversar com o aplicativo do Facebook para Android.
Gere o hash da chave:
keytool -exportcert -alias [alias] -keystore [keystore] | openssl sha1 -binário | openssl base64 Nas configurações de desenvolvedor do Facebook, vá para a guia Dispositivos móveis.
Na seção Android, digite o hash da chave no campo Key Hash.
Talvez exista outra maneira de obter informações sobre os frineds do usuário (aniversário, localização, sexo e assim por diante)?