我们在iOS应用程序商店有一个实时游戏,我目前正在添加一些Facebook集成。我正在尝试测试与应用程序请求的深层链接,但收件人方将不会启动我本地构建的应用程序;相反,它会转到应用程序商店的应用程序页面。我需要更改什么(FB应用程序设置?Xcode构建设置?)才能使其正常工作?我只能假设它有可能......
编辑:应该提到我正在使用最新的SDK(3.7.1),针对iOS 6.1构建。
编辑2 :如果没有截取屏幕截图并将一堆东西搞黑了,我将描述我的FB应用配置是如何设置的:
在Settings -> Basic
中,我只填写了Native iOS App
的数据,其中包含Bundle ID
(匹配ID Xcode正在构建应用程序),iPhone/iPad App Store ID
(与商店中的实时应用匹配),Facebook Login
和Deep Linking
都已启用,URL Scheme Suffix
为空。该应用也位于Sandbox Mode
。在Settings -> Permissions
中,我有publish_actions
(User & Friend Permissions
}和publish_stream
(Extended Permissions
)。我认为其他一切都是香草。
在项目plist中,Bundle identifier
与FB应用程序设置中描述的相同。唯一可能的差异是plist中的FacebookAppID
与我正在使用的这个特定的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];
同样,请求确实正确发送(虽然我看到了弹出对话框时遇到的问题here),我可以在收件人的Facebook帐户上看到请求;它只是重定向没有发现我已经在设备上安装了应用程序(尽管使用Xcode本地构建)。
答案 0 :(得分:0)
URL types -> Item 0 -> URL Schemes
文件中调整Info.plist
以包含我尝试连接的新测试应用的FB方案(以fb<Facebook App ID>
的形式。我已经拥有实时FB应用程序的一个;我只是没有意识到配置步骤存在。