使用相同Facebook应用程序ID的两个iOS应用程序 - 是否有可能?

问题描述:

我正在使用最新的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

在最新的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

我不得不在我的应用程序中使用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