2011-10-29 99 views
1

如果你在iPhone上安裝了Facebook iPhone應用程序和Facebook Messenger應用程序,我注意到,只要你在Facebook應用程序中登錄,Facebook Messenger應用程序就會立即知道你是誰!Facebook Messenger iPhone應用程序如何從Facebook iPhone應用程序獲取登錄信息?

Facebook是怎麼做到的?

兩個應用程序如何相互溝通?

我很想知道這一點,因爲我想知道兩個應用程序是否可以共享一些常用數據(例如產品數據庫),以便只需在一個應用程序中更新這些數據。

回答

0

我要把一個猜測,但我認爲他們的DB他們的存儲你的UDID與當前登錄的用戶

2

的的iOS應用的套件,可以使用鑰匙串訪問共享來共享憑證信息。但是,您不能在設備上共享數據庫。您需要創建一個單片應用程序,或者將共享數據存儲在設備外。

0

基本上這是使用Facebook iOS SDK的單點登錄(SSO)功能完成的。根據facebook開發者文檔,https://developers.facebook.com/docs/mobile/ios/build/#implementsso, 它指出,如果用戶已經安裝了版本大於3.2.3的Facebook應用程序,並且用戶的iOS設備支持多任務處理,那麼基本上應用程序(這裏的facebook messenger情況下)可以從主Facebook程序請求當前登錄的用戶信息。

「iOS SDK最引人注目的特性之一是單點登錄(SSO).SSO允許用戶使用他們的Facebook身份登錄您的應用程序。如果他們已經登錄到其設備上的Facebook iOS應用程序他們甚至不必輸入用戶名和密碼。此外,因爲他們正以他們的Facebook身份登錄您的應用程序,您可以獲得用戶訪問他們的個人資料信息和社交圖的許可「

」如果應用程序正在支持多任務的iOS版本中運行,如果設備安裝了V3.2.3或更高版本的Facebook應用程序,則SDK將嘗試在Facebook應用程序中打開授權對話框。在用戶授予或拒絕授權,Facebook應用程序將重定向回呼叫傳遞授權令牌,到期以及Facebook OAuth服務器可能返回的任何其他參數。「

+0

雖然這並非完全正確。如果你注意到,facebook messenger不會重定向到Facebook應用程序,因爲文檔表明SSO會這麼做(我也測試過這是Spotify的行爲)。我猜測本的答案實際上是正確的,因爲他們可能在KeyChain上存儲了一些東西。 – dsingleton

相關問題