簡體   English   中英

Facebook SDK吸引朋友使用我的應用程序

[英]Facebook sdk getting friends using my app

我試圖讓我的朋友使用與我使用的相同的應用程序,我編寫了以下代碼:

 new GraphRequest(
            AccessToken.getCurrentAccessToken(),
            "/me/friends",
            null,
            HttpMethod.GET,
            new GraphRequest.Callback() {
                public void onCompleted(GraphResponse response) {
                    /* handle the result */
                    Log.d("-@-", "graph response " + response.getJSONObject());
                }
            }



        ).executeAsync();

它在logcat中給出以下錯誤:

 09-14 21:05:10.096: W/FacebookSDK.Request(12520): starting with Graph API v2.4, GET requests for //me/friends should contain an explicit "fields" parameter.

日志中的輸出也是:

09-14 21:05:10.706: D/-@-(12520): graph response {"summary":{"total_count":776},"data":[]}

有什么幫助嗎?

嘗試:

   private void getUserFriendsFacebookIds() {

        GraphRequest request = new GraphRequest(
                AccessToken.getCurrentAccessToken(),
                "/me/friends",
                null,
                HttpMethod.GET,
                new GraphRequest.Callback() {
                   public void onCompleted(GraphResponse response) {
                   /* handle the result */
                   Log.d("-@-", "graph response " + response.getJSONObject());
    if (response.getError() != null) {
            Log.e(TAG, "User data error: " + response.getError(), response.getError().getException());
        } else {
            setUserFriends(response.getRawResponse());
        }
            }
          }
        );

        Bundle parameters = new Bundle();
        parameters.putString("fields", "id,name");
        request.setParameters(parameters);
        request.executeAsync();

    }

private void setUserFriends(String json) {

    FacebookFriendsInfo ff = new Gson().fromJson(json, FacebookFriendsInfo.class);

    Log.i(TAG, "User friends: " + ff);
    ...
}

要解析響應,請嘗試使用GSON庫。

public class FacebookFriendsInfo {


    public List<Friend> data = new ArrayList<Friend>();


    public String getIds() {

        StringBuilder sb = new StringBuilder();

        for (Friend f : data) {

            sb.append(String.format("%d,", f.id));
        }

        return sb.toString();
    }


    @Override
    public String toString() {
        return "FacebookFriendsInfo{" +
                "data=" + data +
                '}';
    }

    public class Friend {
        public long id;
        public String name;


        @Override
        public String toString() {
            return "Friend{" +
                    "id=" + id +
                    ", name='" + name + '\'' +
                    '}';
        }
    }
}

嘗試使用以下API調用: me/friends?fields=name

請參閱v2.4的變更日志中的“聲明性字段”: https : //developers.facebook.com/docs/apps/changelog#v2_4

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM