2015-11-11 14 views

risposta

10

Stai cercando di ottenere la pagina Facebook di Facebook dell'utente che ha effettuato l'accesso nella tua app? Sembra che tu abbia bisogno di eseguire una richiesta di grafico su facebook per acquisire quella lista, e quindi ritirare gli amici che vuoi.
https://developers.facebook.com/docs/graph-api/reference/user/friendlists/

Se si voleva fare in Java di Android, il suo è un esempio:

AccessToken token = AccessToken.getCurrentAccessToken(); 
     GraphRequest graphRequest = GraphRequest.newMeRequest(token, new GraphRequest.GraphJSONObjectCallback() { 
      @Override 
      public void onCompleted(JSONObject jsonObject, GraphResponse graphResponse) { 
       try { 
        JSONArray jsonArrayFriends = jsonObject.getJSONObject("friendlist").getJSONArray("data"); 
        JSONObject friendlistObject = jsonArrayFriends.getJSONObject(0); 
        String friendListID = friendlistObject.getString("id"); 
        myNewGraphReq(friendListID); 

       } catch (JSONException e) { 
        e.printStackTrace(); 
       } 
      } 
     }); 
    Bundle param = new Bundle(); 
    param.putString("fields", "friendlist", "members"); 
    graphRequest.setParameters(param); 
    graphRequest.executeAsync(); 

Dal momento che "membro" è un vantaggio in "FriendList" si può fare una nuova richiesta con il tuo FriendList Id per ottenere i membri di quella particolare lista di amici. https://developers.facebook.com/docs/graph-api/reference/friend-list/members/

private void myNewGraphReq(String friendlistId) { 
    final String graphPath = "/"+friendlistId+"/members/"; 
    AccessToken token = AccessToken.getCurrentAccessToken(); 
    GraphRequest request = new GraphRequest(token, graphPath, null, HttpMethod.GET, new GraphRequest.Callback() { 
     @Override 
     public void onCompleted(GraphResponse graphResponse) { 
      JSONObject object = graphResponse.getJSONObject(); 
      try { 
       JSONArray arrayOfUsersInFriendList= object.getJSONArray("data"); 
       /* Do something with the user list */ 
       /* ex: get first user in list, "name" */ 
       JSONObject user = arrayOfUsersInFriendList.getJSONObject(0); 
       String usersName = user.getString("name"); 
      } catch (JSONException e) { 
       e.printStackTrace(); 
      } 
     } 
    }); 
    Bundle param = new Bundle(); 
    param.putString("fields", "name"); 
    request.setParameters(param); 
    request.executeAsync(); 
} 

Nella documentazione per Facebook Graph richiesta è possibile vedere cosa si può fare con gli oggetti Utente. Sfortunatamente non ho abbastanza rep per pubblicare un altro link.

Ricordare che un utente deve aver eseguito l'accesso con Facebook per ottenere il token di accesso necessario per eseguire queste operazioni.

Beh, spero che sia stato qualcosa di lontanamente simile a quello che stavi cercando.

+0

Wow, lo hai spiegato in dettaglio. Non voglio che l'utente abbia relazioni con Facebook. Voglio solo abilitare l'utente che può importare da Facebook alcuni compleanni dei suoi amici. E ho messo un'icona di facebook nel mio MainActivity e quando clicco che mostrerei una nuova attività e in quell'attività avrei inserito questo codice, giusto? –

+0

In realtà, se si desidera la data di nascita di un utente dall'elenco degli amici è necessario chiedere un permesso supplementare da Facebook. Dai un'occhiata a "user_birthday" her: https://developers.facebook.com/docs/facebook-login/permissions/v2.5#reference-user_birthday Ma se tu avessi il permesso, potresti fare lo stesso come sopra, cambieresti semplicemente user.getString ("nome"); con user.getString ("compleanno"); Ma hai detto che non volevi che l'utente effettuasse l'accesso con Facebook o ricevesse alcun token di accesso da loro? Perché questo codice non funzionerebbe perché hai bisogno di un token di accesso per giocare con le informazioni di Facebook. – Slagathor

+0

Ok, non c'è problema se l'utente deve accedere a Facebook. Beh, senza quell'utente non si otterrebbe la lista dei suoi amici, quindi come potrei fare qualcosa del genere. Farei clic su quell'icona e quindi aprirò una nuova attività come finestra di dialogo e in primo luogo vorrei chiedere l'accesso a Facebook e quindi vorrei mostrare l'elenco dei suoi amici. E c'è una lista di default con checkbox in modo da poter controllare quale amico voglio importare? –

Problemi correlati