我在iOS上从Facebook Open Graph故事深层链接获取targetURL时遇到问题。
我发布了这样的测试故事:
回复是:
{" id":" 10100 ..."}
查看我的个人资料,故事发布正确。链接进入浏览器后进入网页。 Android上一切正常。
第一个奇怪的是,在我的iPad上,[[call appLinkData] targetURL]为空。这不是一个大问题,因为我可以使用originalQueryParameters。
最大的问题是,在我的iPhone上,appLinkData为空,因此我无法获得有关深层链接的任何信息。
可能有什么问题?我的手机上可能有一些设置吗?为什么没有targetURL在iPad上工作?
这两款设备都更新到iOS 7.1和最新的Facebook应用程序。我使用的是最新的iOS SDK 3.13。我也尝试过旧版本,他们都有同样的问题。我尝试过创建一个新的动作和故事,以及一个完全独立的应用程序,结果是一样的。
这里更奇怪。干净恢复了我的手机。下载了Facebook。从Xcode跑出我的应用程序。现在它有效。停止应用。不做任何改变。再次从Xcode运行应用程序。现在它已经不再适用了。什么都没有改变。
这是我的AppDelegate.m中的内容:
- (BOOL)application:(UIApplication *)application
openURL:(NSURL *)url
sourceApplication:(NSString *)sourceApplication
annotation:(id)annotation
{
BOOL wasHandled = [FBAppCall handleOpenURL:url
sourceApplication:sourceApplication
fallbackHandler:^(FBAppCall *call) {
NSLog(@"%@",call);
NSLog(@"%@",[call appLinkData]);
NSLog(@"%@",[[call appLinkData] targetURL]);
NSLog(@"%@",[[call appLinkData] originalQueryParameters]);
}
];
return wasHandled;
}
这是我在iPad上获得的:
2014-03-12 13:49:03.081 myapp[191:60b] <FBAppCall: 0x14e813d0, ID: 196B6395-875C-4C66...
accesstoken: CAAGy9nn...
appLinkData: <FBAppLinkData: 0x14e80910
actionTypes: (
"myapp:checkin"
)>
>
2014-03-12 13:49:03.084 myapp[191:60b] <FBAppLinkData: 0x14e80910
actionTypes: (
"myapp:checkin"
)>
2014-03-12 13:49:03.085 myapp[191:60b] (null)
2014-03-12 13:49:03.086 myapp[191:60b] {
"access_token" = CAAGy9nn..;
"action_object_map" = "[60768014...]";
"action_ref_map" = "[]";
"action_type_map" = "[\"myapp:checkin\"]";
"expires_in" = 3600;
"fb_action_types" = "myapp:checkin";
"fb_source" = "other_multiline";
"target_url" = "http://myapp.com/...";
}
这是我在iPhone上获得的:
2014-03-12 12:55:04.714 myapp[256:60b] <FBAppCall: 0x15dc2e70, ID: 3B25045E-E5F7...
accesstoken: CAAGy9nn..
>
2014-03-12 12:55:04.723 myapp[256:60b] (null)
2014-03-12 12:55:04.725 myapp[256:60b] (null)
2014-03-12 12:55:04.725 myapp[256:60b] (null)
答案 0 :(得分:0)
我认为这与我的帐户有关。在我朋友的电话上,他的帐户有效。在他的手机上,他的帐户,它的工作原理。它只是不适用于我的帐户。也许是因为我是该应用的开发者?此外,完全相同的代码适用于我在其他应用程序上的帐户。奇怪。