【问题标题】:Facebook Applinks - pass custom JSON data in al_applink_dataFacebook Applinks - 在 al_applink_data 中传递自定义 JSON 数据
【发布时间】:2015-05-06 23:12:18
【问题描述】:

是否可以使用 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"
    }
}

【问题讨论】:

  • 能否请您在java中发布您的答案@skomos ..我无法理解MS的答案.. :)

标签: json facebook deep-linking applinks


【解决方案1】:

解析数据

我的解决方案是为 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 字典中附加您的 Facebook 应用链接 ID 和 al_applink_data 键。

[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

谢谢。

【讨论】:

  • 在迂腐的注释中,如果您将查询参数附加到 fb.me url,您可能应该使用除 al_applink_data 之外的任何内容作为键。 al_applink_data 应该为协议保留。您可以随意使用任意键/值作为查询参数,因此您应该使用对您的应用程序有意义的东西,而不是 al_applink_data。
【解决方案2】:

“附加”地图旨在携带任意元数据。您需要什么类型的自定义数据?通过“附加”blob 传递自定义数据需要调用者了解您的应用程序(以便他们可以实际添加数据)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-21
    • 2014-05-04
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多