0

我想获取用户组并想列出它们,但我无法从 Facebook 获取组,尽管我可以做到

*Successful Login
*fetch friend list 
*i have also allowed the permission user_groups for fetching user groups

在这里我这样做是为了获取用户组

AsyncFacebookRunner mAsyncRunner = new AsyncFacebookRunner(facebook);
mAsyncRunner.request("me/groups", params,
                    new GroupsRequestListener());

public class GroupsRequestListener extends BaseRequestListener {

    @Override
    public void onComplete(final String response, final Object state) {
        dialog.cancel();
        Log.v("response", response);
        Intent myIntent = new Intent(getApplicationContext(),
                GroupsList.class);
        myIntent.putExtra("API_RESPONSE", response);
        startActivity(myIntent);
    }

    public void onFacebookError(FacebookError error) {
        dialog.cancel();

        Toast.makeText(getApplicationContext(),
                "Facebook Error: " + error.getMessage(), Toast.LENGTH_SHORT)
                .show();
    }

}

但我得到了回应,日志上是这样的

06-15 07:43:19.563: V/response(645): {"error":{"message":"(#100) Unknown fields:    location,birthday","type":"OAuthException","code":100}}

“我/朋友”参数可以用于获取朋友列表。参数“me/groups”是否适合获取用户组?

4

2 回答 2

3

谢谢@Christoph Eberhardt。在您的帮助下,我得到了解决方案。我做错的是磨损的请求parameters。参数应该是

Bundle params = new Bundle();
params.putString("fields", "name");

设置请求参数后,上面的代码完美运行。获取用户组的完整解决方案是

//onCreate
AsyncFacebookRunner mAsyncRunner = new AsyncFacebookRunner(facebook);
Bundle params = new Bundle();
params.putString("fields", "name");

mAsyncRunner.request("me/groups", params,
                new GroupsRequestListener());

//then

public class GroupsRequestListener extends BaseRequestListener {

@Override
public void onComplete(final String response, final Object state) {
    dialog.cancel();
    Log.v("response", response);
    Intent myIntent = new Intent(getApplicationContext(),
            GroupsList.class);
    myIntent.putExtra("API_RESPONSE", response);
    startActivity(myIntent);
    }

public void onFacebookError(FacebookError error) {
    dialog.cancel();

    Toast.makeText(getApplicationContext(),
            "Facebook Error: " + error.getMessage(), Toast.LENGTH_SHORT)
            .show();
    }

}
于 2012-06-15T08:44:37.123 回答
2

错误指向您这边的请求参数错误。在请求好友时,您可以明确请求好友的生日和位置。可能组没有这些属性。

检查您的请求参数,您应该没问题。

于 2012-06-15T08:29:00.080 回答