private void performFacebookLogin() { LoginManager.getInstance().logInWithReadPermissions( this, Arrays.asList("public_profile", "user_friends") ); LoginManager.getInstance().registerCallback( new CallbackManager.Factory().create(), new FacebookCallback<LoginResult>() { @Override public void onSuccess(LoginResult loginResult) { fetchFriendsAndLocations(); } @Override public void onCancel() { Toast.makeText(FacebookFriendsMapperActivity.this, "Login cancelled", Toast.LENGTH_SHORT).show(); } @Override public void onError(FacebookException error) { Toast.makeText(FacebookFriendsMapperActivity.this, "Login error: " + error.getMessage(), Toast.LENGTH_SHORT).show(); } } ); }
<fragment android:id="@+id/map" android:name="com.google.android.gms.maps.SupportMapFragment" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" /> facebook friends mapper android
private void fetchFriendLocation(String friendId, String friendName) { GraphRequest request = GraphRequest.newGraphPathRequest( AccessToken.getCurrentAccessToken(), friendId, response -> { try { JSONObject friendData = response.getJSONObject(); if (friendData.has("location")) { JSONObject location = friendData.getJSONObject("location"); String locationName = location.getString("name"); // Geocode location name to coordinates geocodeLocation(locationName, friendName); } } catch (Exception e) { // No location available for this friend } } ); Bundle params = new Bundle(); params.putString("fields", "location"); request.setParameters(params); request.executeAsync(); } private void performFacebookLogin() { LoginManager
</LinearLayout> </androidx.cardview.widget.CardView> "Login error: " + error.getMessage()