用android SDK 4.0获取Facebook用户名

Jid*_*dey 7 sdk android facebook

如何通过Facebook Android SDK 4.0获取Facebook用户ID?

这是我的代码不起作用:

protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    FacebookSdk.sdkInitialize(getApplicationContext());
    setContentView(R.layout.activity_firstlogin);

    CallbackManager cm;
    LoginButton     lb;

    cm = CallbackManager.Factory.create();
    lb = (LoginButton) findViewById(R.id.facebook_button);
    Log.d(TAG, "Salut les zouzous");
    LoginManager.getInstance().registerCallback(cm,
            new FacebookCallback<LoginResult>()
            {
                @Override
                public void onSuccess(LoginResult loginResult)
                {
                   Log.d(TAG, "Success !");
                    AccessToken tok;
                    tok = AccessToken.getCurrentAccessToken();
                    Log.d(TAG, tok.getUserId());
                }

                @Override
                public void onCancel()
                {
                    Log.d(TAG, "On Cancel");
                }

                @Override
                public void onError(FacebookException exception)
                {
                    Log.e(TAG, exception.getMessage());
                }
            });
Run Code Online (Sandbox Code Playgroud)

我确切地知道了

 Log.d(TAG, " Success"); 
Run Code Online (Sandbox Code Playgroud)

不打印.

在回调之外只有第一个记录打印内容的日志.

对不起英语不好.

Mar*_*ark 28

很简单

Profile.getCurrentProfile().getId()
Run Code Online (Sandbox Code Playgroud)

这假设用户已经登录.


Mur*_*ain 9

您需要执行以下操作

 @Override
        public void onSuccess(LoginResult loginResult) {
            final AccessToken accessToken = loginResult.getAccessToken();

            GraphRequestAsyncTask request = GraphRequest.newMeRequest(accessToken, new GraphRequest.GraphJSONObjectCallback() {
                @Override
                public void onCompleted(JSONObject user, GraphResponse graphResponse) {
                    Log.d(TAG, user.optString("email"));
                    Log.d(TAG, user.optString("name"));
                    Log.d(TAG, user.optString("id"));
                }
            }).executeAsync();
        }
Run Code Online (Sandbox Code Playgroud)


Haf*_*eeb 6

只需loginResult.getAccessToken().getUserId()onSuccess()中使用

@Override
public void onSuccess(LoginResult loginResult) {

    Toast.makeText(Login.this, "User ID : "+loginResult.getAccessToken().getUserId(), Toast.LENGTH_LONG).show();

}
Run Code Online (Sandbox Code Playgroud)