2015-06-20 116 views
1

我正在制作Android应用程序,用户可以通过Facebook或Google Plus登录。现在我不提供我自己的登录。使用Facebook和Google Plus进行身份验证的表结构?

从Facebook,我检索以下字段。

  • 电子邮件
  • ID

从谷歌加,我检索以下字段。

  • 电子邮件
  • IMAGEURL

现在我需要一个表模式,使存储在通过Facebook或谷歌加上用户凭据是否在用户登录。
问题是,在Google Plus中,我可以得到emailId,这对每个用户都是唯一的,我可以将它作为主键。但在脸书上,即使我收到电子邮件,我也不一定会收到来自每个用户的电子邮件。用户可能没有注册一个emailId。那么,如果用户通过Facebook登录,应该使用什么呢?我应该保持id作为userid。 现在,我能想到以下字段

  • 用户ID(主键)
  • 电子邮件
  • IMAGEURL
  • 模式(Facebook或Google+)
+0

为什么不能从FB获取电子邮件?一个人如何在没有电子邮件的情况下创建FB账户? – Diffy

+0

有可能在没有电子邮件的情况下创建FB。可以通过手机号码注册,而不是电子邮件。 http://stackoverflow.com/questions/13195556/is-it-possible-to-signup-in-facebook-without-an-email-id – user3213851

回答

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(); 
    } 
}