Sto usando la libreria SocialAuth, che supporta molti social network, tra cui Facebook
e Google+
.
Nota: È possibile fornire esempi di codice su come accedere nei social network corrispondenti utilizzando questa libreria (Facebook, Google+) in seguito, se necessario.
Aggiornamento:
1) client di id sono memorizzati in file di oauth_consumer.properties
(metterlo nella cartella assets
)
#facebook
graph.facebook.com.consumer_key = YOUR_KEY
graph.facebook.com.consumer_secret = YOUR_SECRET
#Google Plus
googleapis.com.consumer_key=YOUR_KEY.apps.googleusercontent.com
googleapis.com.consumer_secret=YOUR_SECRET
2) Google+
richiede URL di reindirizzamento. Specifica URL di reindirizzamento in google console del progetto e aggiungilo in SocialAdapter
durante l'inizializzazione.
...
socialAuthAdapter = new SocialAuthAdapter(new ResponseListener(), null);
setAuthProviders();
...
private void setAuthProviders() {
socialAuthAdapter.addProvider(SocialAuthAdapter.Provider.FACEBOOK, R.drawable.facbook);
socialAuthAdapter.addProvider(SocialAuthAdapter.Provider.GOOGLEPLUS, R.drawable.google);
socialAuthAdapter.addCallBack(SocialAuthAdapter.Provider.GOOGLEPLUS, GOOGLE_PLUS_CALLBACK_URL);
//urn:ietf:wg:oauth:2.0:oob - if you set this url, than accessToken received from social network should be handled manually (web page (in WebView) with login response from Google+ will contain in header or in response link accessToken, and you will get it manually by parsing that links). not the best way.
socialAuthAdapter.enable(social);
}
3) Si otterrà access token in ResponseListener
quando il flusso di login sarà finito:
private class ResponseListener implements DialogListener {
@Override
public void onComplete(Bundle bundle) {
final String providerName = bundle.getString(SocialAuthAdapter.PROVIDER);
SocialNetwork network = SocialNetwork.valueOf(providerName);
String accessToken = socialAuthAdapter.getCurrentProvider().getAccessGrant().getKey();
}
@Override
public void onError(final SocialAuthError socialAuthError) {
}
@Override
public void onCancel() {
}
@Override
public void onBack() {
}
}
Si può leggere di più su di reindirizzamento URL here, in "Formare l'URL per una richiesta di autenticazione" sezione.
fonte
2014-12-09 15:35:27
g + mostra così solo perché non si dispone di una configurazione di profilo più con tale account, altrimenti mostrerebbe direttamente la schermata di autorizzazione, utilizza comunque una finestra di dialogo (o una finestra di dialogo?). FB utilizza l'approccio webview quando l'app mobile non è installata sul dispositivo. – Ayoub