Уже поздно отвечать, но теперь в версии 4.25.0
из Facebook SDK
есть метод:
public void retrieveLoginStatus(Context context,
LoginStatusCallback responseCallback)
, который гласит:
Получает статус входа в систему для пользователя.Это вернет маркер доступа к приложению, если пользователь вошел в приложение Facebook для Android на том же устройстве, и этот пользователь ранее вошел в приложение.Если маркер доступа был получен, то будет показан тост, сообщающий пользователю, что он вошел в систему.
И может использоваться следующим образом:
LoginManager.getInstance().retrieveLoginStatus( this, new LoginStatusCallback()
{
@Override
public void onCompleted( AccessToken accessToken )
{
GraphRequest request = GraphRequest.newMeRequest( accessToken, new GraphRequest.GraphJSONObjectCallback()
{
@Override
public void onCompleted( JSONObject object, GraphResponse response )
{
Log.e( TAG, object.toString() );
Log.e( TAG, response.toString() );
try
{
userId = object.getString( "id" );
profilePicture = new URL( "https://graph.facebook.com/" + userId + "/picture?width=500&height=500" );
Log.d( "PROFILE_URL", "url: " + profilePicture.toString() );
if ( object.has( "first_name" ) )
{
firstName = object.getString( "first_name" );
}
if ( object.has( "last_name" ) )
{
lastName = object.getString( "last_name" );
}
if ( object.has( "email" ) )
{
email = object.getString( "email" );
}
if ( object.has( "birthday" ) )
{
birthday = object.getString( "birthday" );
}
if ( object.has( "gender" ) )
{
gender = object.getString( "gender" );
}
Intent main = new Intent( LoginActivity.this, MainActivity.class );
main.putExtra( "name", firstName );
main.putExtra( "surname", lastName );
main.putExtra( "imageUrl", profilePicture.toString() );
startActivity( main );
finish();
}
catch ( JSONException e )
{
e.printStackTrace();
}
catch ( MalformedURLException e )
{
e.printStackTrace();
}
}
} );
//Here we put the requested fields to be returned from the JSONObject
Bundle parameters = new Bundle();
parameters.putString( "fields", "id, first_name, last_name, email, birthday, gender" );
request.setParameters( parameters );
request.executeAsync();
}
@Override
public void onFailure()
{
Toast.makeText( LoginActivity.this, "Could not log in.", Toast.LENGTH_SHORT ).show();
}
@Override
public void onError( Exception exception )
{
Toast.makeText( LoginActivity.this, "Could not log in.", Toast.LENGTH_SHORT ).show();
}
} );
Thisуже был дан ответ здесь .