安卓电视上的Facebook登录

3

我正在尝试在我的Android TV应用中实现Facebook登录。

我一直在遵循这个小指南:https://developers.facebook.com/docs/android/devices

但是我无法使它工作。

以下是我的代码示例:

mCallbackManager = CallbackManager.Factory.create();
    DeviceLoginManager loginManager = new DeviceLoginManager();
    loginManager.registerCallback(mCallbackManager, new FacebookCallback<LoginResult>() {
        @Override
        public void onSuccess(LoginResult loginResult) {
            connectWithFacebook(loginResult.getAccessToken().getToken());
        }

        @Override
        public void onCancel() {
            loginFailed();
        }

        @Override
        public void onError(FacebookException e) {
            loginFailed();
        }
    });
    List<String> permissions = new ArrayList<>();
    permissions.add("email");
    loginManager.logInWithReadPermissions(activity, permissions);

我得到了一个包含电子邮件和密码字段的webview弹出窗口(就像在移动设备上一样),而不是获取这个登录窗口:facebook login。非常感谢您的帮助!
1个回答

0

这是一个与DeviceLoginManager相关的bug,我花了很多时间才找到。

在调用logInWithReadPermissions之前,您必须将LoginBehavior设置为DEVICE_AUTH。

loginManager.setLoginBehavior(LoginBehavior.DEVICE_AUTH);
loginManager.logInWithReadPermissions(activity, permissions);

还有,在你的清单文件中添加这个 metaData:

 <meta-data
        android:name="com.facebook.sdk.ClientToken"
        android:value="@string/client_token" />

也许他们将来会修复这个问题,因为他们已经在DeviceLoginButton上做过了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接