2015-06-20 89 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(); 
    } 
} 
相關問題