2016-03-05 153 views
0

我正在使用Facebook SDK,並且當我嘗試通過使用fb邀請深層鏈接邀請朋友通過faciss。ios fetch使用facebook sdk延遲深層鏈接始終爲空目標c

NSDictionary * getParam = @{ 
          @"access_token":accessToken, 
          @"fields":@"canonical_url", 
          @"pretty":@(YES), 
          }; 
NSString * getCanoicalURL = [NSString stringWithFormat:@"%@/%@",FB_CANONICAL_API, fbAPILinkID]; 
[self GET:getCanoicalURL parameters:getParam success:^(NSURLSessionDataTask * _Nonnull task, id _Nonnull responseObject) 
{ 
    NSError *error; 
    FacebookLink * getResult = [MTLJSONAdapter modelOfClass:[FacebookLink class] fromJSONDictionary:responseObject error:&error]; 
    if (error) 
    { 
     handler(nil,error); 
    } 
    else 
    { 
     handler(getResult.canonicalUrl,nil); 
    } 
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) 
{ 
    handler(nil,error); 
}]; 

下面是我邀請朋友的方法成功地顯示:

-(void)inviteFriend:(NSString*)canonicalUrl 
{ 
     FBSDKAppInviteContent *content =[[FBSDKAppInviteContent alloc] init]; 
     content.appLinkURL =[NSURL URLWithString:canonicalUrl]; 

     [FBSDKAppInviteDialog showFromViewController:self withContent:content delegate:self]; 
} 

但是,當我試圖爲延遲深層鏈接獲取它總是空:

FBSDKAppLinkUtility fetchDeferredAppLink:^(NSURL *url, NSError *error) 
     { 
      NSLog(@"fetch defer app link :%@",url); 
      if (error) { 
       NSLog(@"Received error while fetching deferred app link %@", error); 
      } 
      if (url) { 
       [[UIApplication sharedApplication] openURL:url]; 
      } 
     }]; 

回答

0

Get parts of a NSURL in objective-c

這將是您的確切參考和答案不是如此手動編碼如上。

+0

我使用Facebook深層連結產生轉診這樣。 https://developers.facebook.com/docs/applinks/ios。這不是確切的URL的問題,但問題是,當我試圖從Facebook服務器獲取延期鏈接時,url始終爲空。當用戶通過Facebook邀請用戶後點擊安裝按鈕時,我們正試圖獲取延期應用鏈接。 –

1

確保你的iPhone的限制廣告跟蹤設置爲關閉,在設置 - >高級 - >廣告