如何在Android应用程序中使用Facebookloginbutton获取FB用户ID

我正在开发一个应用程序,其中使用了Facebookloginbutton。 我能够获得用户的access_token ,但我也想要userID 。 我尝试了几乎所有的东西,但都没有成功。 我已经使用Facebook教程来实现这一点。 这里是链接: Facebookloginbutton

请帮助我从相同的loginbutton获取userID

任何forms的帮助将不胜感激。

成功login后,您需要拨打以下代码。 您可以通过ID获得login用户的详细信息。

 Session session = Session.getActiveSession(); Request request = Request.newGraphPathRequest(session, "me", null); com.facebook.Response response = Request.executeAndWait(request) 

使用FB Profile类(Facebook SDK 4.0)的getId方法。

  Profile profile = Profile.getCurrentProfile(); System.out.println(profile.getFirstName()); System.out.println(profile.getId()); 
 loginResult.getAccessToken().getUserId() 

你应该使用新的Facebook SDK 3.0和

 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data); if (Session.getActiveSession().isOpened()) { // Request user data and show the results Request.executeMeRequestAsync(Session.getActiveSession(), new Request.GraphUserCallback() { @Override public void onCompleted(GraphUser user, Response response) { // TODO Auto-generated method stub if (user != null) { // Display the parsed user info Log.v(TAG, "Response : " + response); Log.v(TAG, "UserID : " + user.getId()); Log.v(TAG, "User FirstName : " + user.getFirstName()); } } }); } } 

基于@Ketan Mehta( https://stackoverflow.com/a/17397931/624109 )使用不赞成使用的API的答案,您应该使用以下代码:

 @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data); if (Session.getActiveSession().isOpened()) { // Request user data and show the results Request.newMeRequest(Session.getActiveSession(), new GraphUserCallback() { @Override public void onCompleted(GraphUser user, Response response) { if (null != user) { // Display the parsed user info Log.v(TAG, "Response : " + response); Log.v(TAG, "UserID : " + user.getId()); Log.v(TAG, "User FirstName : " + user.getFirstName()); } } }).executeAsync(); } } 

由于这些答案都是针对较老的SDK,因此对于SDK 4.0,这里是代码

 loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() { @Override public void onSuccess(LoginResult loginResult) { // App code Profile profile = Profile.getCurrentProfile(); Log.d("facebook",profile.getId()); } @Override public void onCancel() { // App code Log.d("facebook","failed"); } @Override public void onError(FacebookException exception) { // App code Log.d("facebook","failed"); } }); 

我正在寻找同样的东西看起来像Session对象是不容易访问,所以上面是获取用户configuration文件和用户ID的新方法。

FacebookgraphicsAPI可以让你调用返回的JSON,你可以在Android中用这个JSONObjectparsing下面的代码。

 JSONObject me = new JSONObject(fb.request("me")); String id = me.getString("id"); 

您可以使用此代码获取用户标识:

 document.getElementById('status').innerHTML = 'Welcome ' + response.name + '!' + "<br />"+ 'Your user ID is : ' + response.id;