Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Cómo recuperar Twitter y Facebook Autenticación y Token a través de las clases de Administrador de cuentas de Android

Quiero recuperar token a través de las clases de Account Manager. Aquí está el código de la muestra que trabaja para el gorjeo pero no para el plz del facebook me ayuda.

public class AccountManagerActivity extends Activity { AccountManager mAccountManager; AccountManagerFuture<Bundle> c; String token; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mAccountManager = AccountManager.get(this); Account[] acc = mAccountManager.getAccounts(); for (int i = 1; i < acc.length; i++) { System.out.println("Account name==" + acc[i].name); System.out.println("Account Type==" + acc[i].type); } AuthenticatorDescription[] ad = mAccountManager.getAuthenticatorTypes(); for (int i = 1; i < ad.length; i++) { System.out.println("AuthenticatorDescription==" + ad[i].type); } tokenForTwitter(); tokenForFacebook(); } private void tokenForFacebook() { Account[] accts = mAccountManager .getAccountsByType("com.facebook.auth.login"); int i = 0; if (accts.length > 0) { System.out.println("here"); Account acct = accts[0]; c = mAccountManager.getAuthToken(acct, "com.facebook.auth.token" , null, this, new AccountManagerCallback<Bundle>() { @Override public void run(AccountManagerFuture<Bundle> arg0) { try { Bundle b = arg0.getResult(); System.out.println("Facebook THIS AUHTOKEN: " + b.getString(AccountManager.KEY_AUTHTOKEN)); Intent launch = (Intent) b .get(AccountManager.KEY_INTENT); if (launch != null) { startActivityForResult(launch, 0); return; } } catch (Exception e) { System.out.println("EXCEPTION@AUTHTOKEN"); } } }, null); c = mAccountManager.getAuthToken(acct, "com.facebook.auth.token.secret" /* * what goes here */, null, this, new AccountManagerCallback<Bundle>() { @Override public void run(AccountManagerFuture<Bundle> arg0) { try { Bundle b = arg0.getResult(); System.out.println("Facebook THIS AUHTOKEN: " + b.getString(AccountManager.KEY_AUTHTOKEN)); Intent launch = (Intent) b .get(AccountManager.KEY_INTENT); if (launch != null) { startActivityForResult(launch, 0); return; } } catch (Exception e) { System.out.println("EXCEPTION@AUTHTOKEN"); } } }, null); // mHandler.sendMessageDelayed(mHandler.obtainMessage(CALL), 0); i++; } } public void tokenForTwitter() { Account[] accts = mAccountManager .getAccountsByType("com.twitter.android.auth.login"); int i = 0; if (accts.length > 0) { System.out.println("here"); Account acct = accts[0]; c = mAccountManager.getAuthToken(acct, "com.twitter.android.oauth.token" /* what goes here */, null, this, new AccountManagerCallback<Bundle>() { @Override public void run(AccountManagerFuture<Bundle> arg0) { try { Bundle b = arg0.getResult(); System.out.println("twitter THIS AUHTOKEN: " + b.getString(AccountManager.KEY_AUTHTOKEN)); Intent launch = (Intent) b .get(AccountManager.KEY_INTENT); if (launch != null) { startActivityForResult(launch, 0); return; } } catch (Exception e) { System.out.println("EXCEPTION@AUTHTOKEN"); } } }, null); c = mAccountManager.getAuthToken(acct, "com.twitter.android.oauth.token.secret" /* * what goes here */, null, this, new AccountManagerCallback<Bundle>() { @Override public void run(AccountManagerFuture<Bundle> arg0) { try { Bundle b = arg0.getResult(); System.out.println("twitter THIS AUHTOKEN: " + b.getString(AccountManager.KEY_AUTHTOKEN)); Intent launch = (Intent) b .get(AccountManager.KEY_INTENT); if (launch != null) { startActivityForResult(launch, 0); return; } } catch (Exception e) { System.out.println("EXCEPTION@AUTHTOKEN"); } } }, null); // mHandler.sendMessageDelayed(mHandler.obtainMessage(CALL), 0); i++; } } } 

  • Cómo compartir una aplicación de Android con facebook y twitter que está en esta aplicación
  • Tejido TwitterKit en Xamarin
  • Oauth_callback en Android
  • Cómo configurar un diseño de menú principal en Android?
  • Twitter no funciona con twitter4j en android
  • Responder a un tweet mediante intentos, a través de la aplicación nativa de Android
  • Tela Iniciar sesión con el botón de twitter está en gris
  • Agregar imagen a twitter compartir intención android
  • 3 Solutions collect form web for “Cómo recuperar Twitter y Facebook Autenticación y Token a través de las clases de Administrador de cuentas de Android”

    Llame a AccountManager.getAccountsByType(null) para recuperar todas las cuentas y compruebe que los datos de cuenta devueltos incluyen la información que necesita. Simplemente puede no estar expuesto.

    Intente llamar a AccountManager.blockingGetAuthToken en AccountManager.blockingGetAuthToken lugar. Además, asegúrese de que su manifiesto tenga el permiso USE_CREDENTIALS establecido correctamente.

    Puedes ver esta discusión Cómo recuperar un Facebook-AuthToken de las cuentas guardadas en Android

    Pero también sugeriría Facebook SDK con permiso de acceso sin conexión (este permiso hace que el token de acceso devuelto por el punto final de OAuth sea de larga vida, de lo contrario el token de autenticación es válido sólo durante 1 hora).

    También puede crear intento y obtener el token de la aplicación de facebook

     Intent intent = new Intent(); intent.setClassName("com.facebook.katana", "com.facebook.katana.ProxyAuth"); intent.putExtra("client_id", apiKey); intent.putExtra("scope", scope); try { activity.startActivityForResult(intent, requestCode); } catch (ActivityNotFoundException e) { return false; } 

    Entonces onActivityResult(int requestCode, int resultCode, Intent data) de su actividad puede obtener el token usando

     data.getStringExtra("access_token"); 

    Sólo para información, la parte de la aplicación facebook de getAuthToken no está implementada. Cuando lo descompila, ve que acaba de devolver null.

    Debe utilizar el SDK de Facebook.

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.