2015-03-05 29 views
5

'a özel JSON verilerini geçirme Facebook uygulamalarını kullanarak al_applink_data numaralı özel verileri iletmek mümkün mü?Facebook Applinks - al_applink_data

Bu JSON örneğini alabilirim ancak özel verilerimi nereye ekleyeceğimi bir yer göremiyorum. Bu mümkün değilse, tek çözüm elde edilen URL ayrıştırmak için ama bu çok kurşun geçirmez görünmüyor.

{ 
    "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

java'daki @skomos'ta ur yanıtı gönderebilir .. MS cevabını anlayamıyorum .. :) –

cevap

2

Ayrıştırma Veri

Çözümümün.

NSDictionary *dictionary = @{ @"target_url" : @"YOUR_VALUE"}; 
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dictionary options:0 error:nil]; 
NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; 

Sonra sözlüğü Nesne FB Graph'ta al_applink_data anahtarla Facebook uygulaması bağlantısı kimliğiyle ekleyin.

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

That's it. !! URLParser

Teşekkür:

Geri arama URL'yi URL ayrıştırma için

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

Referans alınıyor.

+0

Bir podic notta, fb.me url'ye sorgu parametreleri ekliyorsanız, muhtemelen bir şey olarak BUT al_applink_data kullanın. protokol için al_applink_data ayrılmalıdır. Sorgu parametresi için herhangi bir rasgele anahtar/değer kullanmakta serbestsiniz. Bu nedenle, uygulamanız için anlamlı olan ve al_applink_data'yı kullanmamanız gereken bir şey kullanmalısınız. –

0

"Ekstralar" haritası, keyfi meta verileri taşımak için tasarlanmıştır. Ne tür özel veriye ihtiyacınız var? "Ekstra" blob aracılığıyla özel verilerin geçirilmesi, arayanın uygulamanız hakkında bir şeyler bilmesini gerektirir (böylece verileri gerçekten ekleyebilirler). TARGET_URL için özel verileri oluşturarak