Facebook AppLink& iOS:无法检索自定义深层链接URL查询参数

时间:2016-03-15 13:25:17

标签: ios objective-c facebook facebook-graph-api applinks

我正在尝试使用Facebook的App Invite功能创建推荐计划。这需要我为Facebook创建一个动态的应用程序链接来处理并向用户发送包含推荐查询参数的深层链接。

当我发送App Invite时,我在URL中包含了一个appinviteuserid查询参数:

            FBSDKAppInviteContent *content =[[FBSDKAppInviteContent alloc] init];
            NSString* urlString = [NSString stringWithFormat:@"http://eduquest.fr/?appinviteuserid=%@", userId];
            content.appLinkURL = [NSURL URLWithString:urlString];
            [FBSDKAppInviteDialog showFromViewController:self.viewController withContent:content delegate:self];

在我的网站上,我有applinks <meta>标签,这些标签是根据appinviteuserid参数使用PHP脚本填充的。因此,网址http://eduquest.fr/?appinviteuserid=134提供了:

<meta property="og:url" content="http://eduquest.fr?appinviteuserid=134">
<meta property="og:type" content="website">
<meta property="og:image" content="http://eduquest.fr/img/logo01.png">
<meta property="fb:app_id" content="1569329799983803">
<meta property="al:ios:url" content="eduquestbac://invite?fbinviteuserid=134&refid=0">
<meta property="al:ios:app_store_id" content="984500808">
<meta property="al:ios:app_name" content="EduQuest Bac 2016">
<meta property="al:web:should_fallback" content="false">
<meta property="al:web:url" content="http://eduquest.fr">

然后,点击应用邀请链接的用户应该与App Store或应用程序进行深层链接。通常,我应该找到以下输入网址:eduquestbac:// invite?fbinviteuserid = 134&amp; refid = 0

但相反,我得到的网址没有我的查询参数。

- (BOOL)application:(UIApplication *)application
        openURL:(NSURL *)url

sourceApplication:(NSString *)sourceApplication          注释:(id)注释{

// App Links FB

BFURL *parsedUrl = [BFURL URLWithInboundURL:url sourceApplication:sourceApplication];

if ([parsedUrl appLinkData]) {
    NSDictionary* appLinkData = [parsedUrl appLinkData];
    if (appLinkData)
    {
        NSString *facebookReferrerUserId = parsedUrl.inputQueryParameters[@"fbinviteuserid"];
        NSString* referralId = parsedUrl.inputQueryParameters[@"refid"];
// Both these are NSNull

我尝试使用深层链接本身而不通过Facebook App Links,我可以很好地检索数据,因此问题与我的App Links实现有关。

感谢您的帮助

2 个答案:

答案 0 :(得分:1)

将方法调用NSDictionary* appLinkData = [parsedUrl appLinkData];更改为NSDictionary* appLinkData = [parsedUrl targetQueryParameters];,您可以获取&#34; appinviteuserid参数&#34;。 然后是NSString *appInviteUserId = appLinkData[@"appinviteuserid"];

答案 1 :(得分:0)

使用新版本测试App Invite功能后,事情按预期工作。