2016-06-13 4 views
0

Ich versuche diese Werte mit dem Login mit Facebook Button von Facebook sdk zu holen. Was ist falsch daran - es macht nichts. Wenn ich auf den Login-Button klicke, wird nur ein wenig geladen und nichts passiert. Ich sehe nichts, das auch gedruckt wird.Facebook Benutzer - Name, Email, Alter, Standort, Geschlecht, Profil Bild in Android

public class MainActivity extends AppCompatActivity { 

private LoginButton loginButton; 
private CallbackManager callbackManager; 
private ImageView profilePicture; 
private TextView tvNameAge, tvEmail, tvLocation, tvGender; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    FacebookSdk.sdkInitialize(this.getApplicationContext()); 
    AppEventsLogger.activateApp(this); 
    setContentView(R.layout.activity_main); 



    profilePicture = (ImageView) findViewById(R.id.ivProfile); 
    tvNameAge = (TextView) findViewById(R.id.tvNameAge); 
    tvEmail = (TextView) findViewById(R.id.tvEmail); 
    tvLocation = (TextView) findViewById(R.id.tvLocation); 
    tvGender = (TextView) findViewById(R.id.tvGender); 

    loginButton = (LoginButton) findViewById(R.id.login_button); 

    loginButton.setReadPermissions(Arrays.asList(
      "public_profile", "email", "user_birthday", "user_friends", "user_location")); 

    callbackManager = CallbackManager.Factory.create(); 

    // Callback registration 
    loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() { 
     @Override 
     public void onSuccess(LoginResult loginResult) { 
      // App code 
      System.out.println("ONSUCCESS"); 
      GraphRequest request = GraphRequest.newMeRequest(
        loginResult.getAccessToken(), 
        new GraphRequest.GraphJSONObjectCallback() { 
         @Override 
         public void onCompleted(JSONObject object, GraphResponse response) { 

          try { 
           // Application code 
           String name = object.getString("first_name"); 
           String email = object.getString("email"); 
           String birthday = object.getString("birthday"); // 01/31/1980 format 
           String location = object.getString("location"); 
           String gender = object.getString("gender"); 
           String id = object.getString("id"); 

           tvNameAge.setText(name + ", " + birthday); 
           tvEmail.setText(email); 
           tvGender.setText(gender); 
           tvLocation.setText(location); 


           Bitmap bitmap = getFacebookProfilePicture(id); 
           profilePicture.setImageBitmap(bitmap); 

          }catch (Exception e){} 

         } 
        }); 
      Bundle parameters = new Bundle(); 
      parameters.putString("fields", "id,name,email,gender,birthday"); 
      request.setParameters(parameters); 
      request.executeAsync(); 


     } 

     @Override 
     public void onCancel() { 
      // App code 
      System.out.println("ONCANCEL"); 

     } 

     @Override 
     public void onError(FacebookException exception) { 
      // App code 
      System.out.println("ONERROR"); 
     } 
    }); 
} 

public static Bitmap getFacebookProfilePicture(String userID){ 

    Bitmap bitmap = null; 

    try { 
     URL imageURL = new URL("https://graph.facebook.com/" + userID + "/picture?type=large"); 
     bitmap = BitmapFactory.decodeStream(imageURL.openConnection().getInputStream()); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 


    return bitmap; 
} 

}

+0

tat u Setup App Schlüssel aus developers.facebook.com? –

+0

ja, aber ich könnte es falsch gemacht haben '' das ist in meiner Anwendung tag – Nikola

+0

Sie müssen Fragen Sie nach den Feldern. Lesen Sie im Changelog über Deklarative Felder – WizKid

Antwort

0

ich dieses Stück Code fehlte:

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    callbackManager.onActivityResult(requestCode, resultCode, data); 
} 
Verwandte Themen