android - 将现有用户与 Facebook 帐户关联的正确方法

标签 android facebook parse-platform

我使用 parse.com 作为应用程序的后端,虽然 API 指南和快速入门指南很有帮助,但我似乎无法让 facebook<-> 用户链接正常工作。

在应用程序中,我有两个登录按钮。一个用于输入用户号码和密码,另一个用于使用 Facebook 登录。 Facebook 登录效果很好,并且允许用户开始使用该应用程序的社交功能。问题是当他们仅使用电话号码/密码登录时。

这是我的链接按钮代码:

 linkUser(ParseUser.getCurrentUser());


private void linkUser(final ParseUser user) {
List<String> permissions = Arrays.asList("email", Permissions.User.ABOUT_ME);
if (!ParseFacebookUtils.isLinked(user)) {
  ParseFacebookUtils.link(user, permissions, this, new SaveCallback() {

    @Override
    public void done(ParseException ex) {

      if (ex == null) {
        Log.d("MyApp", "No Exception!!");

        if (ParseFacebookUtils.isLinked(user)) {
          Log.d("MyApp", "Woohoo, user logged in with Facebook!");
        }
      } else {
        Log.d("MyApp", ex.getMessage());
      }

    }
  });
} else {
  Log.d("MyApp", "user already link in with Facebook!");
}

如果我清除应用程序的缓存并进行全新安装,我首先使用在 Parse 后端创建的虚拟用户登录,然后单击“链接”按钮。我查看 logcat,但从未看到任何表明用户已链接或未链接的日志行......就好像“完成”代码永远不会触发。我还登录来解析并查看 fbAuth 数据,看看用户的 facebook id 是否显示......什么也没有。

我可能/可能不会做的一件事是完成身份验证工作流程,该工作流程应该位于 onActivityResult 方法中。我将其放入我的通话 Activity (首选项)中:

@Override
protected void onActivityResult(final int requestCode, final int resultCode, final Intent data) {
super.onActivityResult(requestCode, resultCode, data);

if (resultCode == 11000) {
} else {
  ParseFacebookUtils.finishAuthentication(requestCode, resultCode, data);
}
}

我对链接功能的理解是,您可以获取常规解析用户,登录他们(电话号码、电子邮件/通行证等),然后一旦缓存了 ParseUser,就可以使用 SSO 和用户链接到 facebook通过 Facebook 应用程序或网页获取 Facebook 凭据。 parsefacebookutils.link 然后将 facebook 用户与您的解析用户联系起来,以便它们在后端链接。这样您的普通用户就可以开始使用 Facebook 功能。这是正确的吗?

我真的很讨厌索要代码,但是如果有人使用过这个功能,你能分享一下你是如何做到的,或者指出我做错了什么吗?

最佳答案

我知道这已经太晚了,但答案可能会帮助需要它的人。我也遇到了同样的问题,我尝试了下面的代码,它对我有用。更多信息请参阅链接help .

在使用 Facebook 链接代码的 Activity 中包含以下代码。

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    // TODO Auto-generated method stub
    super.onActivityResult(requestCode, resultCode, data);
              if (requestCode == com.facebook.Session.DEFAULT_AUTHORIZE_ACTIVITY_CODE)
               ParseFacebookUtils.finishAuthentication(requestCode, resultCode, data);
}

关于android - 将现有用户与 Facebook 帐户关联的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18652533/

相关文章:

android - 如何在android中制作自定义罗盘 View

android - 系统中的动画加载图标在 Android 上生成 "Preview Window"

facebook - 确定用于 Facebook Open Graph 的 URL 的 Object_ID

facebook - 通用模板 image_url 未在 Messenger 中加载 - Facebook Messenger Platform

ios - 通过解析将时间戳添加到 MapView 注释?

java - Android:如果 API 级别低于 21,则禁用内容转换动画

Android 模拟器因 glMatrixMode :1543 GL err 0x500 而崩溃

ios - Unresolved loginManager Facebook SDK swift3

ios - xcode 7 不在模拟器的解析 TableView 中显示数据,但在设备中有效

ios - 无法关闭以关闭变量