1

我们在 iOS 应用商店有一个现场游戏,我目前正在添加一些 Facebook 集成。我正在尝试使用应用程序请求测试深度链接,但接收方不会启动我本地构建的应用程序;相反,它会转到应用商店上的应用页面。我需要更改什么(FB 应用程序设置?Xcode 构建设置?)才能使其正常工作?我只能假设这是可能的...

编辑:应该提到我正在使用最新的 SDK (3.7.1),针对 iOS 6.1 构建。

编辑 2:没有截取屏幕截图并将一堆东西涂黑,我将描述我的 FB 应用程序配置是如何设置的:

Settings -> Basic中,我只填写了 中的数据Native iOS App,其中包括Bundle ID (与 Xcode 正在构建应用程序的 ID 匹配)、iPhone/iPad App Store ID(与商店中的实时应用程序匹配),Facebook Login并且Deep Linking都已启用,并且URL Scheme Suffix为空。该应用程序也在Sandbox Mode. 在Settings -> Permissions,我有publish_actions(in User & Friend Permissions) 和publish_stream(in Extended Permissions)。我认为其他一切都是香草。

在项目 plist 中,Bundle identifier与 FB 应用程序设置中描述的相同。唯一可能的差异是FacebookAppIDplist 中的 与我正在使用的这个特定的 Facebook 测试应用程序不匹配......我认为这无关紧要,但值得一提。

至于实际发送请求,代码如下:

[FBWebDialogs presentRequestsDialogModallyWithSession:nil
                                              message:message
                                                title:nil
                                           parameters:nil
                                              handler:^(FBWebDialogResult result, NSURL *resultURL, NSError *error) {
                                                  // handle response
                                              }];

我之前也这样做,以确定要连接到哪个 FB 应用程序:

    NSString *path = [[NSBundle mainBundle] pathForResource:@"Info" ofType:@"plist"];
    NSDictionary *dict = [NSDictionary dictionaryWithContentsOfFile:path];

#if GO_TO_TEST_APP
    NSString *fbAppId = [dict objectForKey:@"TestFacebookAppID"];
#else
    NSString *fbAppId = [dict objectForKey:@"FacebookAppID"];
#endif

    NSAssert(fbAppId, @"Failed to get Facebook app id from plist file!");

    [FBSettings setDefaultAppID:fbAppId];

同样,请求确实被正确发送(尽管我看到与弹出对话框时在这里看到的相同的问题),并且我可以在收件人的 Facebook 帐户上看到请求;只是重定向并没有注意到我已经在设备上安装了应用程序(尽管是使用 Xcode 在本地构建的)。

4

1 回答 1

0

上面的汤米是对的;我需要URL types -> Item 0 -> URL Schemes在我的Info.plist文件中进行调整以包含我尝试连接到的新测试应用程序的 FB 方案(以fb<Facebook App ID>.存在。

于 2013-09-03T18:16:40.823 回答