Я пытаюсь создать реферальную программу с функцией Facebook App Invite. Для этого мне нужно создать динамическую ссылку на приложение для Facebook, чтобы обрабатывать и отправлять пользователю глубокую ссылку, содержащую параметры реферального запроса.
Таким образом, когда я отправляю приглашение приложения, я включаю параметр запроса appinviteuserid в URL-адрес:
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-скрипта. Таким образом, 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, и я могу получить данные в порядке, поэтому проблема связана с моей реализацией ссылок на приложения.
спасибо за помощь