0

ユーザーのFacebookの友達リストを取得するAndroidアプリを開発しています。

これは私のコードです。

/**
 * 
 * @param session
 * @return
 */
private Request createRequest(Session session)
{
    Request request = Request.newGraphPathRequest(session, "me/friends", null);

    Set<String> fields = new HashSet<String>();
    String[] requiredFields = new String[] { "id", "name", "picture",
            "gender" };
    fields.addAll(Arrays.asList(requiredFields));

    Bundle parameters = request.getParameters();
    parameters.putString("fields", TextUtils.join(",", fields));
    request.setParameters(parameters);

    return request;
}

private void requestMyFacebookFriends(Session session)
{
    Request friendsRequest = createRequest(session);
    friendsRequest.setCallback(new Request.Callback()
    {

        @Override
        public void onCompleted(Response response)
        {
            List<GraphUser> friends = getResults(response);

            mLovers = filterFriendsToMeetUserGenderPref(friends);
            // Set list adapter to show available lovers or friends.
            setListAdapter(new SelectLoversAdapter(SelectLoversActivity.this, R.layout.item_select_lovers, mLovers));
        }
    });
    friendsRequest.executeAsync();
}

private List<GraphUser> getResults(Response response)
{
    GraphMultiResult multiResult = response
            .getGraphObjectAs(GraphMultiResult.class);
    GraphObjectList<GraphObject> data = multiResult.getData();
    return data.castToListOf(GraphUser.class);
}

private Session.StatusCallback statusCallback = new Session.StatusCallback() 
{
    @Override
    public void call(final Session session, SessionState state, Exception exception) 
    {
        if(session.isOpened())
        {
            requestMyFacebookFriends(session);
        }
    }
};

private static Session openActiveSession(Activity activity, boolean allowLoginUI, Session.StatusCallback statusCallback)
{
    OpenRequest openRequest = new OpenRequest(activity);
    openRequest.setPermissions(Arrays.asList("user_birthday", "email"));
    openRequest.setCallback(statusCallback);

    Session session = new Session.Builder(activity).build();

    if(SessionState.CREATED_TOKEN_LOADED.equals(session.getState()) || allowLoginUI)
    {
        Session.setActiveSession(session);
        session.openForRead(openRequest);

        return session;
    }

    return null;
}

ここでの主な方法はrequestMyFacebookFriends次のとおりですが、問題があります。**インスタンス化する方法がわかりませんcom.facebook.Session

それを取得するためにopenActiveSessionメソッドを使用しますが、私は Facebook 開発に非常に慣れていないため、メソッドで行うことすべてを実行する必要があるかどうかはわかりません。

openActiveSessionFacebookのアクセストークンを取得するために別のアクティビティで使用します。

私の質問は:ユーザーの Facebook の友達リストを取得するためにa を開くにはどうすればよいですか?Session

4

2 に答える 2