在安卓设备上为谷歌智能锁密码存储Facebook凭据

7

将Facebook凭据存储在Google智能锁密码中

我可以在智能锁密码中存储基本的用户名/密码凭据。对于Google凭据,有大量的文档和示例:

GoogleSignInAccount gsa = signInResult.getSignInAccount();
Credential credential = new Credential.Builder(gsa.getEmail())
        .setAccountType(IdentityProviders.GOOGLE)
        .setName(gsa.getDisplayName())
        .setProfilePictureUri(gsa.getPhotoUrl())
        .build();

到目前为止,我无法存储Facebook凭据。它应该是类似的东西。但确切是什么?或者它是完全不同的东西或者不支持的吗?

Credential credential = new Credential.Builder(<what goes here?!>)
        .setAccountType(IdentityProviders.FACEBOOK)
        .setName(<and here?>)
        .setProfilePictureUri(<is this necessary?>)
        .build();

4
作为一名谷歌员工的回答感谢您对我们开发者社区的关注。我们非常重视用户反馈,并努力解决所有问题。在这个特定的问题中,我们正在调查并努力修复安卓凭证库的一个问题。如果您遇到了这个问题,请耐心等待我们的更新,或者您也可以尝试使用其他可用的替代方案。谢谢! - Pauland
1个回答

0

我成功地得到了一个我认为是可用的智能锁版本,可以保存Facebook登录凭据。

我的应用程序使用FB API进行登录。然后,我将令牌发送到我的服务器,服务器反过来发送用户的电子邮件和用户名。我像这样存储这些信息:

    Credential credential = new Credential.Builder(user.getEmail())
       .setAccountType(IdentityProviders.FACEBOOK)
       .setName(user.getName())
       .build();

我对Facebook API并不是非常熟悉,但我认为你可以从Facebook SDK中获取电子邮件和用户名。

在使用此方法保存用户的FB凭据后,我能够在passwords.google.com上查看它们。密码显示为“使用Facebook”。


3
当你启动你的应用程序(但你没有登录),你需要请求凭据。当你找到Facebook的凭证后,如何使用Facebook SDK实现自动连接?对于Google登录,你可以使用Auth.GoogleSignInApi.silentSignIn()。 - Pauland
我没有执行任何后台登录操作。当我登录用户时,Facebook的加载器会显示出来。如果你想避免任何视觉提示他们正在进行静默登录的情况,那么很遗憾,我和你一样。 - Elforama
@Elforama 在使用Facebook时,你基本上需要调用registerCallback()函数,在onSuccess()回调中获取token。这会在屏幕上显示一个加载符号,但实际上它类似于静默登录(silentSignIn())的方式。 - pratham kesarkar

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