2

如何在 facebook sdk 3.0 for android 中创建具有扩展权限的 facebook 会话?

4

3 回答 3

3

你必须先登录用户。然后当您需要扩展权限时,请执行以下操作:(我已将其用于发布权限)

private static final List<String> PERMISSIONS = Arrays.asList("publish_actions");
private static final int REAUTH_ACTIVITY_CODE = 100;
// Check for publish permissions    
List<String> permissions = session.getPermissions();
if (!isSubsetOf(PERMISSIONS, permissions)) {
    Session.ReauthorizeRequest reauthRequest = new Session
           .ReauthorizeRequest(this, PERMISSIONS)
           .setRequestCode(REAUTH_ACTIVITY_CODE);
    session.reauthorizeForPublish(reauthRequest);
    return;
}

isSubsetOf()

private boolean isSubsetOf(Collection<String> subset, Collection<String> superset) {
  for (String string : subset) {
     if (!superset.contains(string)) {
         return false;
     }
  }
  return true;
}
于 2013-02-28T14:28:07.807 回答
1

如果您使用 SDK(3.0 版)提供的 facebook LoginButton,它将为您处理大部分会话管理,您可以轻松地请求权限,如下所示:

 authButton.setReadPermissions(Arrays.asList("user_location", 
                               "user_birthday", "user_likes"));

请参阅文档以获取完整的教程。

于 2013-02-28T11:25:18.097 回答
0

您可以设置权限:请参阅此Graph api 不返回用户电子邮件 ID设置从 Facebook 登录获取用户电子邮件 ID 的权限

于 2013-10-22T07:46:18.943 回答