¿Cómo obtener el token de acceso de usuario de facebook en android?

Estoy utilizando restfb API para acceder a las fotos de mi amigo en Java. Y para acceder a estas fotos, genero el código de acceso manualmente usando Graph API explorer y pasar esto como un parámetro a la llamada restfb API.

Pero ahora quiero generar este token de acceso a través de código (de forma programática). He visto muestras fb android, sobre todo hackbook. No veo ningún código de acceso que se esté generando que pueda utilizar para mi propia aplicación. ¿Necesito crear una nueva aplicación y obtener algún secreto, etc.? Cualquier sugerencia será apreciada.

He visto estas soluciones ( solution-1 & solution-2 ) en stackoverflow pero todavía no estoy consiguiendo dónde empezar?

Actualizar-1 ::

Estoy usando el siguiente código para iniciar sesión y obtener el token de acceso para el usuario registrado. Pero el problema es que sólo funciona para la cuenta con la que había creado una aplicación en Facebook para generar un app_id. No obtiene una devolución de llamada para otras cuentas. Cualquier sugerencia por favor.

Y en caso de que no sepa por dónde empezar, siga el paso 6 para crear una nueva aplicación desde cero.

public class MainActivity extends Activity implements OnClickListener { Button login; TextView accessToken; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); login = (Button) findViewById(R.id.login); accessToken = (TextView) findViewById(R.id.accessToken); login.setOnClickListener(this); // start Facebook Login } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data); } @Override public void onResume() { Session session = Session.getActiveSession(); if(session != null) if (session.isOpened()) { //Toast.makeText(this, session.getAccessToken(), Toast.LENGTH_LONG).show(); accessToken = (TextView) findViewById(R.id.accessToken); accessToken.setText(session.getAccessToken()); System.out.println("----------------------" + session.getAccessToken() + "---------------------"); } super.onResume(); } @Override public void onClick(View v) { // start Facebook Login Session.openActiveSession(this, true, new Session.StatusCallback() { // callback when session changes state @Override public void call(Session session, SessionState state, Exception exception) { if (session.isOpened()) { // make request to the /me API Request.executeMeRequestAsync(session, new Request.GraphUserCallback() { // callback after Graph API response with user // object @Override public void onCompleted(GraphUser user, Response response) { if (user != null) { TextView welcome = (TextView) findViewById(R.id.welcome); welcome.setText("Hello " + user.getName() + "!"); } } }); } } }); } } 

4 Solutions collect form web for “¿Cómo obtener el token de acceso de usuario de facebook en android?”

Utilizando el SDK de Facebook, la mejor manera de administrar la autenticación del usuario es mediante la clase Session . Cuando tiene una instancia válida de la clase Session, sólo tiene que llamar a getAccessToken() en ella para obtener la String que representa el token de acceso.

 Session session = Session.getActiveSession(); if (session != null && session.getState().isOpened()){ Log.i("sessionToken", session.getAccessToken()); Log.i("sessionTokenDueDate", session.getExpirationDate().toLocaleString()); } 

Yo estaba teniendo el mismo problema con el último SDK de Android de Facebook (4.0.1).

Utilicé AccessToken.getCurrentAccessToken () y funcionó:

  GraphRequest request = GraphRequest.newMeRequest( AccessToken.getCurrentAccessToken(), new GraphRequest.GraphJSONObjectCallback() { @Override public void onCompleted(JSONObject jsonObject, GraphResponse response) { Log.d(LOG_TAG,"onCompleted jsonObject: "+jsonObject); Log.d(LOG_TAG,"onCompleted response: "+response); // Application code } }); Bundle parameters = new Bundle(); parameters.putString("fields", "id,name,link,cover,email"); request.setParameters(parameters); request.executeAsync(); 

GET / oauth / access_token? Client_id = {app-id} & client_secret = {app-secret} & grant_type = client_credentials

La respuesta a la pregunta original ya se ha introducido como update-1. Pero sólo funcionaba para los usuarios de administración.

En realidad, durante la creación de la aplicación, había seleccionado erróneamente el modo 'recopilado' que restringe el acceso de la aplicación sólo a los desarrolladores añadidos en la página de configuración de la aplicación. Así que después de desactivar este modo, pude generar token de acceso para otros usuarios también.

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