2015-03-05 9 views
5

è possibile passare i dati personalizzati in al_applink_data utilizzando i link di Facebook?Applinks di Facebook - passare dati JSON personalizzati in al_applink_data

Posso recuperare questo esempio JSON ma non riesco a vedere un punto in cui aggiungere i miei dati personalizzati. Se questo non è possibile, la mia unica soluzione è analizzare l'URL ottenuto ma questo non sembra molto a prova di proiettile.

{ 
    "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" 
    } 
} 
+0

potresti per favore postare risposta @skomos in java .. Non riesco a capire la risposta di MS .. :) –

risposta

2

analisi dei dati

La mia soluzione per la creazione di dati personalizzati per 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]; 

Poi, aggiungere con la vostra app Facebook collegamento ID con al_applink_data chiave nella FB oggetto grafico dizionario.

[NSString stringWithFormat:@"https://fb.me/FB_LINK_ID?al_applink_data=%@", jsonString] 

Questo è tutto !!

Recupero Callback 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); 
} 

di riferimento per l'analisi URL: URLParser

Grazie.

+0

Su una nota di pedante, se stai aggiungendo i parametri di query all'URL di fb.me, dovresti probabilmente usa qualsiasi cosa MA al_applink_data come chiave. al_applink_data dovrebbe essere riservato per il protocollo. Sei libero di usare qualsiasi chiave/valore arbitrario per il parametro di query, quindi dovresti usare qualcosa che abbia senso per la tua applicazione, e non al_applink_data. –

0

La mappa "extra" è stata progettata per trasportare metadati arbitrari. Che tipo di dati personalizzati hai bisogno? Il trasferimento di dati personalizzati tramite il blob "extra" richiede al chiamante di sapere qualcosa sulla tua app (in modo che possano effettivamente aggiungere i dati).