Android Facebook получить всю информацию профиля

Как я могу получить всю информацию профиля пользователя из facebook (например, имя, фамилия, адрес электронной почты и т.д.).

Я загрузил FB SDK, но нет примера для получения информации о профиле.

Ответ 1

Вот пример в папке facebook-android-sdk/examples/simple. Он показывает, как сделать асинхронный запрос для основных данных пользователя. Вы сможете найти эти данные.

Приветствия

Ответ 2

Вот самый быстрый способ, который работал у меня

import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.view.View;

import android.widget.Toast;

import com.facebook.Request;
import com.facebook.Request.GraphUserCallback;
import com.facebook.Response;
import com.facebook.Session;
import com.facebook.Session.StatusCallback;
import com.facebook.SessionState;
import com.facebook.model.GraphUser;
import com.x.y.android.R;

public class FBConnect extends FragmentActivity {
    private static final String TAG = "FacebookConnect";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.facebook_connect);


    if (Session.getActiveSession() == null
            || Session.getActiveSession().isClosed()) {
        Session.openActiveSession(this, true, new StatusCallback() {

            @Override
            public void call(Session session, SessionState state,
                    Exception exception) {
                System.out.println("State= " + state);

                if (session.isOpened()) {
                    System.out.println("Token=" + session.getAccessToken());
                    Request.executeMeRequestAsync(session,
                            new GraphUserCallback() {
                                @Override
                                public void onCompleted(GraphUser user,
                                        Response response) {
                                    if (user != null) {
                                        System.out.println("User=" + user);

                                    }
                                    if (response != null) {
                                        System.out.println("Response="
                                                + response);
                                        Toast.makeText(FBConnect.this,
                                                response.toString(),
                                                Toast.LENGTH_LONG).show();
                                    }
                                }
                            });
                }
                if (exception != null) {
                    System.out.println("Some thing bad happened!");
                    exception.printStackTrace();
                }
            }
        });
    }
    }

    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    Session.getActiveSession().onActivityResult(this, requestCode,
            resultCode, data);
    }

}

Ответ 3

Сначала вы создаете свое приложение и получаете идентификатор приложения, а затем передаете этот идентификатор вашему коду, как это.       Инициализировать глобально

public static final String mAPP_ID = "Your APP ID";
Facebook mFacebook= new Facebook(mAPP_ID); 

и setOnClickListener на вашей кнопке в On Create()

// facebook login button click event
try{            
    //mFacebook.logout(LoginActivity.this);
    ((Button)findViewById(R.id.loginPageFaceBookButton)).setOnClickListener(loginButtonListener);

    SessionStore.restore(mFacebook,LoginPage.this);         
} catch (Exception e) {
        Toast.makeText( LoginPage.this,"Exception"+e.toString(), Toast.LENGTH_SHORT).show();
}


    // loginButtonListener
        //----------------------------------------------

        private OnClickListener loginButtonListener = new OnClickListener()
        {
            public void onClick( View v )
            {
                if(!mFacebook.isSessionValid() )
                {   
                    mFacebook.authorize(LoginPage.this, new String[] {"publish_stream","email","user_groups","read_stream","user_about_me","offline_access"},Facebook.FORCE_DIALOG_AUTH, new LoginDialogListener());
                }
                else
                {
                    try 
                    {

                        JSONObject json = Util.parseJson(mFacebook.request("me"));
                        facebookID = json.getString("id");
                        facebookEmail = json.getString("email");
                        faceBooklastName=json.getString("last_name");
                        faceBookFirstName=json.getString("first_name");


                    }
                    catch (Exception e)
                    {
                        // TODO: handle exception
                        //Toast.makeText( LoginActivity.this,"Exception FB "+e.toString(), Toast.LENGTH_SHORT).show();
                    }

                    catch( FacebookError error )
                    {
                        Toast.makeText( LoginPage.this,error.toString(), Toast.LENGTH_SHORT).show();
                    }
                }
            }
        }; 


//onActivityResult
    //***********************************************************
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data)
    {

        mFacebook.authorizeCallback(requestCode, resultCode, data);
    }


    // DialogListener CLASS STATRT HERE.

     public final class LoginDialogListener implements DialogListener
        {
            public void onComplete(Bundle values)
            {
                try 
                {
                    JSONObject json = Util.parseJson(mFacebook.request("me"));
                    facebookID = json.getString("id");
                    facebookEmail = json.getString("email");
                    SessionStore.save(mFacebook, LoginPage.this); Toast.makeText( LoginPage.this,"facebookID :"+facebookID+" \n "+"facebookEmail : "+facebookEmail, Toast.LENGTH_SHORT).show();
                }
                catch( Exception error ) 
                {
                    Toast.makeText( LoginPage.this, error.toString(), Toast.LENGTH_SHORT).show();
                }
                catch( FacebookError error )
                {
                    Toast.makeText( LoginPage.this, error.toString(), Toast.LENGTH_SHORT).show();
                }
            }

            public void onFacebookError(FacebookError error) {
                Toast.makeText( LoginPage.this, "Something went wrong. Please try again.1"+error.toString(), Toast.LENGTH_LONG).show();
            }

            public void onError(DialogError error) {
                Toast.makeText( LoginPage.this, "Something went wrong. Please try again.2"+error.toString(), Toast.LENGTH_LONG).show();
            } 

            public void onCancel() {
                Toast.makeText( LoginPage.this, "Something went wrong. Please try again.3", Toast.LENGTH_LONG).show();
            }
            /******  Facebook Login End  *******/

        }

Ответ 4

// Make an API call to get user data and define a 
// new callback to handle the response.
Request request = Request.newMeRequest(session, 
        new Request.GraphUserCallback() {
    @Override
    public void onCompleted(GraphUser user, Response response) {
        // If the response is successful
        if (session == Session.getActiveSession()) {
            if (user != null) {
                // Set the id for the ProfilePictureView
                // view that in turn displays the profile picture.
                profilePictureView.setProfileId(user.getId());
                // Set the Textview text to the user name.
                userNameView.setText(user.getName());
            }
        }
        if (response.getError() != null) {
            // Handle errors, will do so later.
        }
    }
});
request.executeAsync();

Это просто данные пользователя! Вы можете найти все соответствующие данные в соответствии с первым ответом, который связывается с документом FB, который имеет все связанные поля, которые можно получить!