我正在使用官方 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.exceptionprivate 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/