【问题标题】:Facebook AppLink & iOS: can't retrieve custom deep link URL query parametersFacebook AppLink 和 iOS:无法检索自定义深层链接 URL 查询参数
【发布时间】:2016-03-15 13:25:16
【问题描述】:

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

当我发送应用邀请时,我会在 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];

在我的网站上,我使用 PHP 脚本根据 appinviteuserid 参数填充了 applinks <meta> 标签。所以 URL 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 或应用。通常,我应该找到以下输入 URL:eduquestbac://invite?fbinviteuserid=134&refid=0

但是,我得到的 URL 没有我的查询参数。

- (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 应用链接,并且可以正常检索数据,因此问题与我的应用链接实现有关。

感谢您的帮助

【问题讨论】:

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


    【解决方案1】:

    将方法调用NSDictionary* appLinkData = [parsedUrl appLinkData]; 更改为NSDictionary* appLinkData = [parsedUrl targetQueryParameters]; 从那里您可以获得“appinviteuserid 参数”。 然后NSString *appInviteUserId = appLinkData[@"appinviteuserid"];

    【讨论】:

    • 您好,谢谢您的回答。我不是想获取目标查询参数。我正在寻找我的深层链接的参数。这些是“invitefbuserid”和“refid”。它们是深度链接的参数(所以我认为是“输入 URL”),而不是具有 appinviteuserid 参数的目标 URL。我总是可以尝试将我的两个参数放入目标 URL 而不是深度链接 URL,但这听起来违反直觉且没有必要。
    【解决方案2】:

    使用新版本测试 App Invite 功能后,一切正常。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多