2015-05-28 1 views
0

Я хочу опубликовать имя, ссылкуОписание и изображение на FBLinkShareParams, но я не могу это сделать на Facebook приложение установлено состояние, но оно прекрасно работает в Facebook приложение не установлено состояние если сделано в FBWebDialogs. Я смог опубликовать params.link только в Facebook приложение установлено состояние.В разделе «Facebook» я не могу публиковать имя, ссылкуОписание и изображение на FBLinkShareParams на Facebook, установленное условие

Я использовал код, как показано ниже:

 #pragma mark - facebook share 
    //facebook share 
    - (void)shareLinkinFB{ 
    /* Facebook app is installed*/ 
     FBLinkShareParams *params = [[FBLinkShareParams alloc] init]; 
     params.link = [NSURL URLWithString:@"https://developers.facebook.com/docs/ios/share/"]; 
     params.name= @"Dieheart"; 
     params.picture= [NSURL URLWithString:Str_KoolkatPic]; 
     [email protected]"A quick and better way to get anything delivered at your doorstep. "; 



     // If the Facebook app is installed and we can present the share dialog 
     if ([FBDialogs canPresentShareDialogWithParams:params]) { 
      [FBDialogs presentShareDialogWithLink:params.link handler:^(FBAppCall *call, NSDictionary *results, NSError *error) { if(error) { 
       // An error occurred, we need to handle the error 
       NSLog(@"Error publishing story: %@", error.description); 
      } else { 
       // Success 
       NSLog(@"result %@", results); 
      } 
      }]; 
      NSLog(@"Share login page Now"); 


     } else { 
      /* Facebook app Not installed*/ 
      NSLog(@"Share dialog"); 
      NSString *urlString = [NSString stringWithFormat:@"%@/resources/images/login-logo.png",SERVER_ADDRESS]; 
      NSString *Str_NameLabel; 
      NSString *Str_Description; 
      [email protected]"testing for idelivery IOS application"; 
      [email protected]"Share functionality in progress"; 

      NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys: 
              Str_NameLabel, @"name", 
              @"idelivery Town center", @"caption", 
              Str_Description, @"description", 
              @"https://www.facebook.com/edeliveryksa", @"link", 
              urlString, @"picture", 
              nil]; 
      // Show the feed dialog 
      [FBWebDialogs presentFeedDialogModallyWithSession:nil parameters:params 
                 handler:^(FBWebDialogResult result, NSURL *resultURL, NSError *error) { 
                  if (error) { 
                   // An error occurred, we need to handle the error 
                   // See: https://developers.facebook.com/docs/ios/errors 
                   NSLog(@"Error publishing story: %@", error.description); 
                  } else { 
                   if (result == FBWebDialogResultDialogNotCompleted) { 
                    // User cancelled. 
                    NSLog(@"User cancelled."); 
                   } else { 
                    // Handle the publish feed callback 
                    NSDictionary *urlParams = [self parseURLParams:[resultURL query]]; 

                    if (![urlParams valueForKey:@"post_id"]) { 
                     // User cancelled. 
                     NSLog(@"User cancelled."); 

                    } else { 
                     // User clicked the Share button 
                     NSString *result = [NSString stringWithFormat: @"Posted story, id: %@", [urlParams valueForKey:@"post_id"]]; 
                     NSLog(@"result %@", result); 
                     [self postSuccess]; // success vako condn ko lagi banako 
                    } 
                   } 
                  } 
                 }]; 
     }} 



    - (BOOL)application:(UIApplication *)application 
       openURL:(NSURL *)url 
     sourceApplication:(NSString *)sourceApplication 
      annotation:(id)annotation { 

     BOOL urlWasHandled = [FBAppCall handleOpenURL:url 
            sourceApplication:sourceApplication 
             fallbackHandler:^(FBAppCall *call) { 
              NSLog(@"Unhandled deep link: %@", url); 
              // Here goes the code to handle the links 
             }]; 

     return urlWasHandled; 
    } 

    // A function for parsing URL parameters returned by the Feed Dialog. 
    - (NSDictionary*)parseURLParams:(NSString *)query { 
     NSArray *pairs = [query componentsSeparatedByString:@"&"]; 
     NSMutableDictionary *params = [[NSMutableDictionary alloc] init]; 
     for (NSString *pair in pairs) { 
      NSArray *kv = [pair componentsSeparatedByString:@"="]; 
      NSString *val = 
      [kv[1] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 
      params[kv[0]] = val; 
     } 
     return params; 
    } 


    - (void)postSuccess{ 

     NSLog(@" post success"); 
    } 

Надежда любой сможет мне помочь

ответ

1

Похоже, что вы звоните canPresentShareDialogWithParams: с реальные параметры, но когда дело доходит до фактического представления диалогового окна, вы называете его ссылкой nil, что, вероятно, почему ничего не появляется.

Вы должны вызвать метод presentShareDialogWithParams:clientState:handler: с параметрами, которые вы создали.

[FBDialogs presentShareDialogWithParams:params 
          clientState:nil 
           handler:^(FBAppCall *call, NSDictionary *results, NSError *error) {...}]; 
+0

проверить измененный пост. У меня проблема с установкой приложения Facebook. Я не могу опубликовать другие сообщения, которые могут быть отправлены. Url –

+0

Я не могу опубликовать имя, ссылкуОписание и изображение на FBLinkShareParams, когда приложение Facebook установлено, но я могу публиковать сообщения, когда приложение Facebook не установлено. –

+0

Пожалуйста, используйте метод, который я упоминаю в своем ответе. Вы используете только метод presentShareDialogWithLink:, поэтому, конечно, он будет использовать только ссылку, так как вы не передаете какой-либо другой информации (например, описание или изображение) методу. –

Смежные вопросы