使用Facebook和Google Plus进行身份验证的表格结构?

时间:2015-06-20 12:45:48

标签: android facebook login google-plus

我正在创建一个Android应用程序,用户可以通过Facebook或Google Plus登录。现在我没有提供自己的登录信息。

从Facebook,我正在检索以下字段。

  • 电子邮件
  • ID
  • 名称

从Google Plus,我正在检索以下字段。

  • 电子邮件
  • IMAGEURL
  • 名称

现在我需要一个表架构来存储用户凭据,无论用户是通过Facebook还是Google Plus登录 问题是,在Google Plus中,我可以获得对每个用户都是唯一的emailId,我可以将其作为主键。但在Facebook中,即使我收到电子邮件,我也没有必要从每个用户那里收到电子邮件。用户可能尚未注册emailId。那么如果用户通过Facebook登录,应该是userid。我应该将id作为用户ID保留。 现在,我可以想到以下字段

  • userid(主键)
  • 名称
  • 电子邮件
  • IMAGEURL
  • 模式(脸书或谷歌加)

1 个答案:

答案 0 :(得分:0)

要从Facebook获取用户的任何公开信息,您可以使用:

    public void getProfileInformation() {
    try {

        JSONObject profile = Util.parseJson(facebook.request("me"));
        Log.e("Profile", "" + profile);
        fb_mUserId = profile.getString("id");
        fb_verified = profile.getBoolean("verified");
        fb_mUserToken = facebook.getAccessToken();
        fb_mUserName = profile.getString("name");
        fb_mUserEmail = profile.getString("email");

        runOnUiThread(new Runnable() {

            public void run() {

                Log.e("FaceBook_Profile", "" + fb_mUserId + "\n"
                        + fb_mUserToken + "\n" + fb_mUserName + "\n"
                        + fb_mUserEmail);
            }
        });

    } catch (FacebookError e) {

        e.printStackTrace();
    } catch (MalformedURLException e) {

        e.printStackTrace();
    } catch (JSONException e) {

        e.printStackTrace();
    } catch (IOException e) {

        e.printStackTrace();
    }
}