-2

재생 초대 내가 성공적으로 페이스 북을 통해 로그인, 내 모든 페이스 북 친구를 표시하고 내 응용 프로그램에서 페이스 북 통합 에 나는 새로운 오전

을하지만, 내가 원하는하는 방법 안드로이드

  1. 표시

그들에게 보낸 초대장을 초대

  • 후 버튼을 초대하여 목록에있는 모든 내 페이스 북 친구

    많이 찾았지만 Facebook 문서를 이해할 수 없습니다. 아무런 관련 사례가 없습니다.

    매우 감사드립니다.

  • 답변

    1

    친구에게 팔로우하는 디스플레이 북을위한 중요한 부분을 넣어 두었습니다. 게임을 설치하지 않은 디스플레이 FB 친구 목록에 대한 주요 부분 (다음 더 많은 정보와 당신이 참조하지만해야하는 quesry,

    https://developers.facebook.com/

    https://developers.facebook.com/docs/games/unity/unity-tutorial

    https://github.com/fbsamples/web-friend-smash-v1

    https://github.com/fbsamples/android-friend-smash-v2

    을 위해) 목록에 Facebook 친구를 표시하려면

    당신의 버튼의 onclick에 기능을 다음 10

    전화 :

     Session session = Session.getActiveSession(); 
         if (session == null || !session.isOpened()) { 
          return; 
         } 
         List<String> permissions = session.getPermissions(); 
    
         if (!permissions.contains("user_friends")) { 
    
          askForFriendsForPlayPermission(session); 
    
         } else { 
          loadFriendsFromFacebook(new FriendsLoadedCallback() { 
    
           @Override 
           public void afterFriendsLoaded() { 
            // startGame(); 
            close_button_value = 11; 
            img_close_button.setVisibility(View.VISIBLE); 
           } 
    
          }); 
    
         } 
    

    askForFriendsForPlayPermission (...) : 당신은, 그래 그때는 FB 친구 목록의 목록을 표시 누르면이 기능은 다음과 같습니다, 친구에게 허락을하는 데 도움이 :

    private void askForFriendsForPlayPermission(final Session session) { 
        // user has already said no once this session. 
        if (application.hasDeniedFriendPermission()) { 
        } else { 
         new AlertDialog.Builder(HomeActivity.this) 
           .setPositiveButton(R.string.dialog_yes, new DialogInterface.OnClickListener() { 
            @Override 
            public void onClick(DialogInterface dialog, int id) { 
             // User hit OK. Request Facebook friends 
             // permission. 
              requestFriendsPermission(AUTH_FRIENDS_PLAY_ACTIVITY_CODE); 
            } 
           }).setNegativeButton(R.string.dialog_no, new DialogInterface.OnClickListener() { 
            public void onClick(DialogInterface dialog, int id) { 
             // User hit cancel. Keep track of deny so 
             // that we 
             // only ask once per session 
             // and then just play the game. 
             application.setHasDeniedFriendPermission(true); 
    
            } 
           }).setTitle(R.string.with_friends_dialog_title).setMessage(R.string.with_friends_dialog_message) 
           .show(); 
        } 
    } 
    

    를 적어 user_friends 권한 - 전화 :

    private void requestFriendsPermission(int requestCode) { 
        // --//--Log.d("Permiision", "Requesting friends permissions."); 
        Session.NewPermissionsRequest newFriendsPermissionsRequest = new Session.NewPermissionsRequest(this, 
          "user_friends").setRequestCode(requestCode); 
        Session.getActiveSession().requestNewReadPermissions(newFriendsPermissionsRequest); 
    
    } 
    

    로드 페이스 북의 친구 :

    private void loadFriendsFromFacebook(final FriendsLoadedCallback callback) { 
        final Session session = Session.getActiveSession(); 
        RequestBatch requestBatch = new RequestBatch(); 
        Request invitableFriendsRequest = Request.newGraphPathRequest(session, "/me/invitable_friends", 
          new Request.Callback() { 
    
           @Override 
           public void onCompleted(Response response) { 
    
            FacebookRequestError error = response.getError(); 
            if (error != null) { 
             Log.e(CricoApplication.TAG, error.toString()); 
             // handleError(error, true); 
            } else if (session == Session.getActiveSession()) { 
             if (response != null) { 
              // Get the result 
              GraphObject graphObject = response.getGraphObject(); 
              JSONArray dataArray = (JSONArray) graphObject.getProperty("data"); 
    
              List<JSONObject> invitableFriends = new ArrayList<JSONObject>(); 
              if (dataArray.length() > 0) { 
               // Ensure the user has at least one friend 
               // ... 
               // fb_friends = new ArrayList<String>(); 
               list_fb_friends = new ArrayList<HashMap<String, String>>(); 
               for (int i = 0; i < dataArray.length(); i++) { 
                invitableFriends.add(dataArray.optJSONObject(i)); 
                try { 
                 JSONObject json = dataArray.getJSONObject(i); 
                 String str_id = json.getString(TAG_ID); 
                 String str_first_name = json.getString(TAG_FIRST_NAME); 
    
                 JSONObject picture_obj = json.getJSONObject(TAG_PICTURE); 
                 JSONObject data_obj = picture_obj.getJSONObject(TAG_DATA); 
                 // String str_is_silhouette = 
                 // data_obj.getString(TAG_IS_SILHOUETTE); 
                 String str_url = data_obj.getString(TAG_URL); 
    
        // put fb id and friends name in map and add to list view 
                 map_fb_friends = new HashMap<String, String>(); 
                 map_fb_friends.put("str_id", str_id); 
                 map_fb_friends.put("str_first_name", str_first_name); 
                 map_fb_friends.put("str_url", str_url); 
                 list_fb_friends.add(map_fb_friends); 
                 fb_friends.add(str_id); 
    
                } catch (Exception e) { 
                 e.printStackTrace(); 
                } 
               } 
    
    
    LazyAdapter_fb_friends adapter = new LazyAdapter_fb_friends(HomeActivity.this, 
                 list_fb_friends); 
    Your_list_view.setAdapter(adapter); 
              } 
    
              application.setInvitableFriends(invitableFriends); 
             } 
            } 
           } 
    
          }); 
        Bundle invitableParams = new Bundle(); 
        invitableParams.putString("fields", "id,first_name,picture"); 
        invitableFriendsRequest.setParameters(invitableParams); 
        requestBatch.add(invitableFriendsRequest); 
    
        // Get the user's list of friends. 
        // This only returns friends who have installed the game. 
        Request friendsRequest = Request.newMyFriendsRequest(session, new Request.GraphUserListCallback() { 
    
         @Override 
         public void onCompleted(List<GraphUser> users, Response response) { 
          FacebookRequestError error = response.getError(); 
          if (error != null) { 
           Log.e(CricoApplication.TAG, error.toString()); 
           // handleError(error, true); 
          } else if (session == Session.getActiveSession()) { 
           // Set the friends attribute 
           application.setFriends(users); 
           callback.afterFriendsLoaded(); 
          } 
         } 
        }); 
    

    특정 친구를 초대하기 위해 facebook-id를 사용할 수 있습니다.

    1

    희망 this가 도움이됩니다. 당신이 모든 친구를 표시하려면
    당신은

    1. 가 그래프 API의 invitable_friends here를 호출하여 얻을 수 있습니다 귀하의 응용 프로그램을 사용하지 않는 친구 코드에 대한 설명서 두 개의 API를 병합해야합니다. 이미 당신이 원하는 경우,

    다음 그래프 API의 친구를 호출하여 얻을 귀하의 응용 프로그램을 그들이 할 수 사용

  • 친구
    (당신의 FBApp 게임을 분류하는 경우 invitable_friends에만 얻을 수 있습니다) invitable_friends를 검색하려면 login with permission해야합니다.

    마지막으로 초대장을 보내는 경우 여기에 documentation이 있습니다.