Obtención de un token de acceso malformado "t ype": "OAuthException", "code": 190
Estoy escribiendo una aplicación de Android para obtener los álbumes de usuario de Facebook y fotos y mostrar en mi aplicación de Android. He creado una aplicación de Facebook con APP_ID 281846961912565 .
Al crear la instancia de Facebook, estoy pasando este id como sigue
- El emulador Android de Bluestacks está construido usando .Net?
- Enviar una imagen codificada en base64 al servidor mediante HttpUrlConnection Android
- Deshabilitar el error de clase duplicado para las clases en la carpeta de prueba - Android Studio / IntelliJ
- Clave de Google Maps en AndroidManifest.xml de google-services.json
- Servicio de fondo de gamepad android
facebook = new Facebook(APP_ID);
Utilizando esta instancia, puedo acceder a mi cuenta de la cuenta FB en mensajes en la pared de facebook mediante programación. Después de iniciar sesión, obtengo un access_token.
Estoy usando el token de acceso para obtener los ids del álbum usando facebook.request("https://graph.facebook.com/me/albums?access_token="+facebook.getAccessToken());
Ahora tengo {"error":{"message":"Malformed access token ACCESSTOKENACCESSTOKEN?access_token=ACCESSTOKENACCESSTOKEN","type":"OAuthException","code":190}}
¿Puede alguno de ustedes por favor ayudarme a resolver este problema y señalar lo que estoy haciendo mal.
Mi código es el siguiente:
private static final String[] PERMISSIONS = new String[] { "publish_stream","user_photos" }; public boolean saveCredentials(Facebook facebook) { Editor editor = getApplicationContext().getSharedPreferences(KEY, Context.MODE_PRIVATE).edit(); editor.putString(TOKEN, facebook.getAccessToken()); editor.putLong(EXPIRES, facebook.getAccessExpires()); return editor.commit(); } public boolean restoreCredentials(Facebook facebook) { SharedPreferences sharedPreferences = getApplicationContext() .getSharedPreferences(KEY, Context.MODE_PRIVATE); facebook.setAccessToken(sharedPreferences.getString(TOKEN, null)); facebook.setAccessExpires(sharedPreferences.getLong(EXPIRES, 0)); return facebook.isSessionValid(); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); facebook = new Facebook(APP_ID); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.facebook_dialog); String facebookMessage = getIntent().getStringExtra("facebookMessage"); if (facebookMessage == null) { facebookMessage = "Test wall post"; } messageToPost = facebookMessage; }
R.layout.facebook_dialog es el diálogo que aparece preguntando si un mensaje debe ser compartido en Facebook o no. En caso afirmativo, se llama al siguiente método.
public void share(View button) { if (!facebook.isSessionValid()) { loginAndPostToWall(); } else { postToWall(messageToPost); } } public void loginAndPostToWall() { facebook.authorize(this, PERMISSIONS, Facebook.FORCE_DIALOG_AUTH, new LoginDialogListener()); } class LoginDialogListener implements DialogListener { public void onComplete(Bundle values) { saveCredentials(facebook); if (messageToPost != null) { postToWall(messageToPost); } } public void onFacebookError(FacebookError error) { showToast("Authentication with Facebook failed!"); finish(); } public void onError(DialogError error) { showToast("Authentication with Facebook failed!"); finish(); } public void onCancel() { showToast("Authentication with Facebook cancelled!"); finish(); } } public void postToWall(String message) { Bundle parameters = new Bundle(); parameters.putString("message", message); parameters.putString("description", "topic share"); try { facebook.request("me"); String response = facebook.request("me/feed", parameters, "POST"); Log.d("Tests", "got response: " + response); if (response == null || response.equals("") || response.equals("false")) { showToast("Blank response."); } else { showToast("Message posted to your facebook wall!"); } getImagesFromUserAlbum(); finish(); } catch (Exception e) { showToast("Failed to post to wall!"); e.printStackTrace(); finish(); } }
Más tarde, cuando hago un `private void getImagesFromUserAlbum () {facebook.getAccessToken ();
JSONArray albumss = null; String response = null; try { response = facebook.request("me/albums");
// `
Tengo el error {"error": {"message": "Mal acceso de acceso malo ACCESSTOKEN? Access_token = ACCESSTOKEN", "type": "OAuthException", "code": 190}}
Gracias por tu ayuda.
El código anterior es ahora la copia de trabajo. Gracias a Bartek.
- Utilizar interfaces para constantes de espacio de nombres en Android
- Parcelable y herencia en Android
- Cómo deshabilitar el botón de nuevo presionado en la clase de fragmento de Android
- Aplicación detenida en Android / SQLITE ERROR /
- Ejecutar python script dentro de java en android
- Establecer el timbre de unix de Android en un DatePicker
- ¿Cómo puedo configurar una alerta que aparezca en todo momento?
- ¿Cómo determina Canvas sus límites de clip?
Si observa la página Errores en la documentación verá que cuando obtiene el error 190
debe autorizar / reautorizar al usuario.
Sospecho que esto le sucedió a usted porque inició sesión por primera vez, a continuación, agregó los permisos para acceder a los álbumes a su aplicación, pero no salir y volver a iniciar. Por lo tanto, es necesario obtener un nuevo token de acceso que concederá los nuevos permisos A su aplicación.
Por favor, compruebe está allí y expira en su token de acceso si sí, a continuación, quítelo porque no es parte de access_token y tratar después de eso.
- WindowSoftInputMode set to stateHidden | adjustResize no funciona en android
- Cómo implementar el menú Radial Pie