2011-05-13 116 views
16

我正在使用最新的Facebook iOS SDK(支持SSO)將我的iPhone應用程序與Facebook連接起來。到目前爲止好..使用相同Facebook應用程序ID的兩個iOS應用程序 - 是否有可能?

由於我目前的應用程序是免費附帶廣告,我想沒有廣告(我將用於充電)創建另一個版本。我不想使用應用內購買方式。

我現在面臨的問題是,與Facebook的SSO,我需要iOS的應用程序綁定到它是基於Facebook的應用程序ID的URL。由於我只有一個Facebook應用程序被兩個iphone應用程序使用,因此這兩個iOS應用程序綁定到相同的URL,因此當它們都安裝在設備上時,從Facebook到我的應用程序的回調不起作用(或打開另一個應用程序)。

是否存在除了創造致力於iPhone應用程序的新版本的另一個Facebook應用程序應該是一個解決方案嗎?

謝謝。

+0

請執行您的iOS應用程式的需要的網址回調?我爲幾個iOS應用程序使用了相同的AppID,並且它工作正常。 – 2011-05-18 01:25:20

+0

在最新的facebook iOS SDK中,每個應用都必須添加URL綁定,否則登錄成功消息將永遠不會到達您的應用(SSO流)。 – 2011-05-19 09:14:29

+0

您不必在FB iOS SDK中使用該URL方案。這只是他們推薦的SSO和多任務處理。我建議你看看Facebook.m,看看他們是如何處理他們的權威傳遞。 – 2011-05-19 14:38:30

回答

24

在最新的Facebook iOS SDK on Github有一種方法稱爲 authorize:delegate:localAppId: initWithAppId:urlSchemeSuffix:andDelegate:。您可以使用 localAppId urlSchemeSuffix參數來區分使用同一個Facebook應用程序ID的多個iOS應用。方法文檔說:

urlSchemeSuffix是附加到用於SSO的基本URL方案的小寫字母的字符串。例如,如果您的Facebook ID是「350685531728」,並且您將urlSchemeSuffix設置爲「abcd」,則Facebook應用程序會希望您的應用程序綁定到以下URL方案:「fb350685531728abcd」。如果您的多個iOS應用程序共享一個Facebook應用程序ID(例如,如果您在同一應用程序上有免費和付費版本),並且您希望在兩個應用程序中使用SSO,則此功能非常有用。爲這兩個應用程序提供不同的urlSchemeSuffix值將允許Facebook應用程序消除他們的URL方案的歧義,並始終將用戶重定向到正確的應用程序,即使免費應用程序和應用程序都安裝在設備上。

urlSchemeSuffix支撐在3.4.1版本和上述Facebook的應用程序的。如果用戶安裝了Facebook應用的舊版本,並且您的應用使用了urlSchemeSuffix參數,則SDK將繼續進行,如果Facebook應用未安裝在設備上並將用戶重定向到Safari。

+0

沒有找到你提到的方法。但我發現「 - (id)initWithAppId:(NSString *)appId urlSchemeSuffix:(NSString *)urlSchemeSuffix andDelegate :(id )委託{」 – 2012-01-17 05:32:33

+0

似乎他們從授權中刪除localAppId並將其作爲urlSchemeSuffix添加到init方法。我剛剛更新了我的答案,謝謝你的提示。 – Zargony 2012-01-17 11:05:39

+2

我遇到了同樣的問題,並且(使用此答案)我已經通過將「fb40000000000006 $ {PRODUCT_NAME}」設置爲我的URL方案來解決此問題,並將urlSchemeSuffix設置爲獲取的產品名稱,如下所示:http:/ /stackoverflow.com/questions/1247142/getting-an-iphone-apps-product-name-at-runtime。這樣,SSO就可以在共享相同Facebook App ID的應用程序中正確綁定,而無需額外的工作。 – DannyA 2012-07-05 08:27:42

17

我不得不在我的應用程序中使用FBLoginView,並且這些解決方案都不起作用。唯一缺少的是我需要在plist文件中添加一個新條目:FacebookUrlSchemeSuffix(documented here,在步驟2中)。

假設你的App ID爲123456,我要做的就是:

1)在你的Facebook應用程序,添加URL方案後綴在iOS的部分:

enter image description here

2 )在這兩個應用程序的,轉到應用的.plist,並添加以下條目:

enter image description here

請注意,該值必須是已添加的網址格式後綴之一。

3)也可以修改Facebook上的URL方案中的.plist文件FB。例如,fb123456client

enter image description here

+0

最簡單,最準確的答案。當你不需要它時,爲什麼寫不必要的代碼。 – polterfest 2015-01-20 19:54:39

+0

好的幫助,感謝老兄:) – NAZIK 2015-05-23 07:50:24

+0

謝謝 - 我失蹤了FacebookUrlSchemeSuffix鍵/值。 Facebook文檔吸! – Dunc 2015-06-16 15:52:03

相關問題