3

ネイティブ Android で Facebook SDK 3.5 を使用しています。これは、Facebookの友達のID/名前を取得する方法です:

private void onSessionStateChange(final Session session,
        SessionState state, Exception exception) {
    System.out.println("onSessionStateChanged");
    if (session != null && session.isOpened()) {
        if (state.equals(SessionState.OPENED_TOKEN_UPDATED)) {
            tokenUpdated();
        } else {
            getUserRequest(session);
            getFriendsRequest(session);
        }
    } else {
        profilePictureView.setProfileId(null);
        userNameView.setText("");
    }
}
    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        Session.getActiveSession().onActivityResult(getActivity(), requestCode,
                resultCode, data);
        // uiHelper.onActivityResult(requestCode, resultCode, data,
        // nativeDialogCallback);
    }


private void getFriendsRequest(Session session) {

        session.requestNewReadPermissions(new NewPermissionsRequest(
                getActivity(), PERMISSIONS));
        final ProgressDialog dialog = new ProgressDialog(getActivity());
        // get friends details
        Request request = Request.newMyFriendsRequest(session,
                new Request.GraphUserListCallback() {

                    @Override
                    public void onCompleted(List<GraphUser> users,
                            Response response) {

                        // if no errors
                        if (response.getError() == null) {
                            if (users != null) {
                                for (GraphUser user : users) {
                                    FacebookFriend fb = new FacebookFriend(user
                                            .getId(), user.getName(), "", "",
                                            "", 0);
                                        friends.add(fb);
                                    }

....
                    }
}

応答は次のとおりです。

{Response:  responseCode: 200, graphObject: GraphObject{graphObjectClass=GraphObject, state={"data":[{"id":"213","name":"Test name"}]}}, error: null, isFromCache:false}

ここではすべて問題ありませんが、電子メール (共有されている場合)、場所、ユーザー名などの詳細は にありません:

GraphObject{graphObjectClass=GraphUser, state={"id":"60711232217","name":"Test"}}

アクセス許可はどこに設定すればよいですか? これは私の要求です:

{Request:  session: {Session state:OPENED, token:{AccessToken token:ACCESS_TOKEN_REMOVED permissions:[email, user_location, user_friends, friends_location, basic_info]}, appId:111111}, graphPath: me/friends, graphObject: null, restMethod: null, httpMethod: GET, parameters: Bundle[{access_token=dasdasdasdasdsada, format=json, sdk=android, migration_bundle=fbsdk:20130708}]}

詳細を表示するには、これらのアクセス許可をどこに追加すればよいですか?

ありがとうございました。

4

3 に答える 3

6

このリンクに移動します Graphapilink

Graph API エクスプローラー アイコンをクリックします。次に、アプリケーション名「YourApplication」を選択します。次に、GetAccesTocken をクリックします。[Select Permission] ポップアップ ウィンドウが表示されます。次に、[Extended Permission] タブを選択します。

ここに画像の説明を入力

最後に、上の図のように必要な許可を選択します

于 2013-09-18T10:58:58.283 に答える