Facebook Applinks - 在 al_applink_data 中传递自定义 JSON 数据
Facebook Applinks - pass custom JSON data in al_applink_data
是否可以使用 Facebook 应用程序链接在 al_applink_data
中传递自定义数据?
我可以检索这个 JSON 示例,但我看不到将我的自定义数据附加到其中的位置。如果这是不可能的,那么我唯一的解决方案是解析获得的 URL 但这似乎不太可靠。
{
"target_url": "https://www.example.com/abc.html",
"extras": {
"fb_app_id": [YOUR_FACEBOOK_APP_ID],
"fb_access_token": "[ACCESS_TOKEN']",
"fb_expires_in": "3600"
},
"referer_app_link": {
"url": "[FACEBOOK_APP_BACK_LINK]",
"app_name": "Facebook"
}
}
"extras" 地图旨在承载任意元数据。您需要什么类型的自定义数据?通过 "extras" blob 传递自定义数据需要调用者了解您的应用程序(这样他们才能实际添加数据)。
解析数据
我的解决方案是为 target_url 创建自定义数据。
NSDictionary *dictionary = @{ @"target_url" : @"YOUR_VALUE"};
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dictionary options:0 error:nil];
NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
然后,在 FB Graph Object 字典中使用 al_applink_data
键附加您的 Facebook 应用 link ID。
[NSString stringWithFormat:@"https://fb.me/FB_LINK_ID?al_applink_data=%@", jsonString]
就是这样!
正在检索回调 URL
if([[call appLinkData] targetURL] != nil)
{
NSURL *targetUrl = [[call appLinkData] targetURL];
//Actual URL
NSString *urlString = [[targetUrl absoluteString] stringByRemovingPercentEncoding];
URLParser *parser = [[URLParser alloc] initWithURLString:urlString];
//Fetching value for 'al_applink_data'
NSString *appLinkData = [parser valueForVariable:@"al_applink_data"];
NSData *objectData = [appLinkData dataUsingEncoding:NSUTF8StringEncoding];
//Dictionary with 'target_key' key and its value.
NSDictionary *json = [NSJSONSerialization JSONObjectWithData:objectData options:NSJSONReadingMutableContainers error:nil];
NSLog(@"%@", json);
}
URL 解析参考:URLParser
谢谢。
是否可以使用 Facebook 应用程序链接在 al_applink_data
中传递自定义数据?
我可以检索这个 JSON 示例,但我看不到将我的自定义数据附加到其中的位置。如果这是不可能的,那么我唯一的解决方案是解析获得的 URL 但这似乎不太可靠。
{
"target_url": "https://www.example.com/abc.html",
"extras": {
"fb_app_id": [YOUR_FACEBOOK_APP_ID],
"fb_access_token": "[ACCESS_TOKEN']",
"fb_expires_in": "3600"
},
"referer_app_link": {
"url": "[FACEBOOK_APP_BACK_LINK]",
"app_name": "Facebook"
}
}
"extras" 地图旨在承载任意元数据。您需要什么类型的自定义数据?通过 "extras" blob 传递自定义数据需要调用者了解您的应用程序(这样他们才能实际添加数据)。
解析数据
我的解决方案是为 target_url 创建自定义数据。
NSDictionary *dictionary = @{ @"target_url" : @"YOUR_VALUE"};
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dictionary options:0 error:nil];
NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
然后,在 FB Graph Object 字典中使用 al_applink_data
键附加您的 Facebook 应用 link ID。
[NSString stringWithFormat:@"https://fb.me/FB_LINK_ID?al_applink_data=%@", jsonString]
就是这样!
正在检索回调 URL
if([[call appLinkData] targetURL] != nil)
{
NSURL *targetUrl = [[call appLinkData] targetURL];
//Actual URL
NSString *urlString = [[targetUrl absoluteString] stringByRemovingPercentEncoding];
URLParser *parser = [[URLParser alloc] initWithURLString:urlString];
//Fetching value for 'al_applink_data'
NSString *appLinkData = [parser valueForVariable:@"al_applink_data"];
NSData *objectData = [appLinkData dataUsingEncoding:NSUTF8StringEncoding];
//Dictionary with 'target_key' key and its value.
NSDictionary *json = [NSJSONSerialization JSONObjectWithData:objectData options:NSJSONReadingMutableContainers error:nil];
NSLog(@"%@", json);
}
URL 解析参考:URLParser
谢谢。