android - 如何使用 android sdk 3.0 beta 获取 Facebook 附加权限?

标签 android facebook permissions facebook-android-sdk beta

我正在使用官方 SDK beta 3.0 为 Android 开发一个简单的 Facebook 应用。

我想在不使用 LoginButton 的情况下为登录的用户(user_likes、user_interests、friends_likes 等)获得额外的权限(如此处解释 https://developers.facebook.com/docs/howtos/androidsdk/3.0/login-with-facebook/ ),事实上,我正在使用方法获得额外的权限

public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        List<String> permission=new ArrayList<String>();
        permission.add("user_birthday");
        permission.add("user_likes");
        permission.add("user_questions");
        permission.add("user_interests");
        permission.add("user_relationships");
        permission.add("user_groups");
        permission.add("user_religion_politics");
        permission.add("friends_birthday");
        permission.add("friends_interests");
        permission.add("friends_likes");
        permission.add("friends_groups");
        permission.add("friends_questions");
        permission.add("friends_relationships");
       // this.openSession();
          this.openSessionForRead(app_id, permission);

    } 

实际上,它会打开登录 View ,请求获得额外权限。

现在,我知道如何获得额外的权限,因为当我调用 user.get**() 时,它没有显示除基本信息之外的其他方法。

谢谢!


我正在使用

获取 Null.pointer.exception

private GraphObject mUser; ... // Assign the user object you get from a call to get the user's info

String religion = mUser.getProperty("religion").toString();

这是我的日志:

11-08 14:21:47.908: E/AndroidRuntime(1306): FATAL EXCEPTION: main
11-08 14:21:47.908: E/AndroidRuntime(1306): java.lang.NullPointerException
11-08 14:21:47.908: E/AndroidRuntime(1306):     at com.********.*****.Main$1.onCompleted(Main.java:123)
11-08 14:21:47.908: E/AndroidRuntime(1306):     at com.facebook.Request$1.onCompleted(Request.java:248)
11-08 14:21:47.908: E/AndroidRuntime(1306):     at com.facebook.Request$4.run(Request.java:1197)
11-08 14:21:47.908: E/AndroidRuntime(1306):     at android.os.Handler.handleCallback(Handler.java:615)
11-08 14:21:47.908: E/AndroidRuntime(1306):     at android.os.Handler.dispatchMessage(Handler.java:92)
11-08 14:21:47.908: E/AndroidRuntime(1306):     at android.os.Looper.loop(Looper.java:137)
11-08 14:21:47.908: E/AndroidRuntime(1306):     at android.app.ActivityThread.main(ActivityThread.java:4745)
11-08 14:21:47.908: E/AndroidRuntime(1306):     at java.lang.reflect.Method.invokeNative(Native Method)
11-08 14:21:47.908: E/AndroidRuntime(1306):     at java.lang.reflect.Method.invoke(Method.java:511)
11-08 14:21:47.908: E/AndroidRuntime(1306):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
11-08 14:21:47.908: E/AndroidRuntime(1306):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
11-08 14:21:47.908: E/AndroidRuntime(1306):     at dalvik.system.NativeStart.main(Native Method)

最佳答案

您可以在 session 创建后获得额外的权限。不关闭 session

Session.NewPermissionsRequest newPermissionsRequest = new Session
                    .NewPermissionsRequest(this, Arrays.asList("user_groups"));

            session.requestNewReadPermissions(newPermissionsRequest);

关于android - 如何使用 android sdk 3.0 beta 获取 Facebook 附加权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13270359/

相关文章:

powershell - 使用 powershell_script 自动导入 mediawiki

android - 在 Android M 中授予 EXTERNAL_STORAGE 所需的权限?

java - 我可以在构建时使用 Ant 在我的 Android 项目中设置一些静态变量吗?

android - 加载音频文件时显示进度条

php - 检查 Facebook 登录状态 : Client side vs Server side

php - CSV 上传适用于本地 WAMP,但不适用于使用 LOAD DATA 的远程 LAMP

android - Flutter Assets 中的多分辨率背景图像

Java解密错误: data not block size aligned

信息亭中的 Facebook "like"功能

android - 带有图片的 Facebook 帖子(object_attachment)。图片为空。为什么?