我有以下代码.这是对Facebook的Android API中LoginButton的回调函数的简单测试.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
FacebookSdk.sdkInitialize(getApplicationContext());
setContentView(R.layout.activity_main);
callbackManager = CallbackManager.Factory.create();
LoginButton loginButton = (LoginButton)findViewById(R.id.login_button);
loginButton.setReadPermissions("user_friends");
loginButton.setReadPermissions("email");
loginButton.setReadPermissions("public_profile");
loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
Log.e("SUCCESS", "LOGIN SUCCESSFUL");
}
@Override
public void onCancel() {
Log.e("CANCEL", "Cancelled");
}
@Override
public void onError(FacebookException e) {
Log.e("ERROR", "Facebook Exception");
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
callbackManager.onActivityResult(requestCode, resultCode, data);
}
Run Code Online (Sandbox Code Playgroud)
唯一的问题是每当我点击loginButton时,会出现一个对话框,并在短时间内消失,然后logcat打印出"CANCEL"文本.我似乎无法修复此错误,并且我没有单击取消,因为该对话框只显示并立即消失.
请帮我解决这个问题?
gab*_*iel 10
由于Facebook现在需要审查使用发布访问权限的应用程序,您需要登录Facebook开发者控制台,在应用程序部分选择您的应用程序,单击角色并添加测试人员(或管理员)角色.在此之后,您应该能够获得正确的访问令牌.
我遇到了这个问题。
似乎是这样,如果您在已经拥有访问令牌(具有所有必需的权限)时尝试登录(使用logInWithReadPermissions或logInWithPublishPermissions),onCancel则会执行回调。
也就是说你不应该让用户登录,因为用户已经登录了。首先检查这个。
| 归档时间: |
|
| 查看次数: |
6497 次 |
| 最近记录: |