Texto original de Gregor Dorfbauer, disponível em http://blog.lagentz.com/phonegap/facebook-authentification-inside-phonegap-android/
?
Ao usar o PhoneGap, os arquivos da aplicação são acessados localmente
(file://assets/…). Portanto, o processo padrão de autenticação do Facebook
usando redirecionamento não funciona fora da caixa.
Este artigo mostra o uso do
PhoneGap-Facebook-Plugin. PhoneGap + Android suportam um Facebook-Plugin (de Jos Shepherd, muito obrigado!).
Simplesmente insira a fonte (Java + JavaScript) do Facebook-Plugin em seu
projeto PhoneGap. Eu tive que adaptar o arquivo FacebookAuth.java para suportar
mais capacidades (como publish_stream, …):
/**
* Display a new browser with the specified URL.
*
* @return "" if ok, or error message.
*/
public void authorize(final String appid) {
Log.d("PhoneGapLog", "authorize");
final FacebookAuth fba = this;
Runnable runnable = new Runnable() {
public void run() {
fba.mFb = new Facebook(appid);
fba.mFb.setPlugin(fba);
fba.mFb.authorize((Activity) fba.ctx,
new String[] {
"publish_stream",
"offline_access"},
new AuthorizeListener(fba));
};
};
this.ctx.runOnUiThread(runnable);
}
Note que você tem que registrar sua App-Signing-Key no Facebook (App-Settings)
– Mobile and Devices – Android. Senão isso apenas funcionará no Android
Simulator, mas não no dispositivo real.
Você consegue sua Key-Signature usando o seguinte comando:
var appId = 1234; // this is your facebook app id
window.plugins.facebook.authorize(appId, function(res) {
if(res.token !== undefined) {
// we have a token, save it (user has authenticated before)
} else {
// we have to call authorize
window.plugins.facebook.getAccess(function(res) {
if(res.token !== undefined) {
// we got a token (user has authenticated
// just in that moment)
}
});
}
});
Para implementações no iPhone, você precisa de uma
abordagem diferente, usando o ChildBrowser, outro PhoneGap-Plugin
(depurplecabbage/Jesse, obrigado!).







