Facebook FriendPickerFragment api

时间:2014-05-21 21:26:05

标签: android facebook facebook-android-sdk

我已经下载了facebook-android-sdk-3.14.1.zip,并试图让这些示例正常运行。我陷入了永远不会返回朋友列表的FriendPickerFragment。我可以登录Facebook ok(再次使用Facebook代码),使用'Scrumptious'示例和我的版本来跟随https://developers.facebook.com/docs/android/getting-started

我发现我的请求仅限于公开个人资料许可,例如

{Session state:OPENED, token:{AccessToken token:ACCESS_TOKEN_REMOVED permissions:[public_profile]}, appId:520510648055719}

我从Facebook friend picker SDK sample not working Android获取了代码,这将添加user_friends权限,并看到Session现在是:

{Session state:OPENED, token:{AccessToken token:ACCESS_TOKEN_REMOVED permissions:[public_profile, basic_info, user_friends]}, appId:520510648055719}

当我将代码追溯到RequestAsyncTask.doInBackground时,请求的值在:

@Override
protected List<Response> doInBackground(Void... params) {
    try {
        if (connection == null) {
            return requests.executeAndWait();
        } else {
            return Request.executeConnectionAndWait(connection, requests);
        }
    } catch (Exception e) {
        exception = e;
        return null;
    }
}

{Request:  session: {Session state:OPENED, token:{AccessToken    token:ACCESS_TOKEN_REMOVED permissions:[public_profile, basic_info, user_friends]}, appId:520510648055719}, graphPath: me/friends, graphObject: null, restMethod: null, httpMethod: GET, parameters: Bundle[{fields=id,name,picture.height(75).width(75)}]}

我在onPostExecute(列表结果)中看到了响应:

 [{Response:  responseCode: 200, graphObject: GraphObject{graphObjectClass=GraphObject, state={"data":[]}}, error: null, isFromCache:true}]

我之前是否需要先解决一些缓存问题?如果是这样,我该怎么做?

我读过Facebook最近改变了安全性。我创建了我的Facebook TestUI'app'并输入了hashKey(我认为一切正常,因为我可以成功登录Facebook)

我还应该关注其他什么吗?

寻找任何和所有的智慧。

由于

埃里克

1 个答案:

答案 0 :(得分:1)

使用Graph Search v2.0,对用户朋友的请求只会返回同时使用您的应用的朋友列表(包括示例),并且必须作为特殊权限请求user_friends权限。虽然您可以使用以下内容搜索“taggable_friends”之类的内容,但似乎没有真正解决此问题的方法:

    new Request(
    session,
    "/me/taggable_friends", //instead of "/me/friends"
    null,
    HttpMethod.GET,
    new Request.Callback() {
        public void onCompleted(Response response) {
            /* handle the result */
        }
    }).executeAsync();
来自Facebook Graph Reference