2014-04-28 1 views
0

Мое требование мне нужно разместить на своей стене Facebook через мое приложение с настройками конфиденциальности (уведомление конкретных друзей), как достичь этого я последовал следующий кодКак опубликовать на моей стене Facebook С уведомлением некоторых друзей?

-(void)sendNotification 

{ 

    CoreDataManager *coremanagerobj = [[CoreDataManager alloc]init]; 
    NSArray *useridarray = [coremanagerobj GetAllMembersList]; 
    NSMutableArray *arraylist = [[NSMutableArray alloc]init]; // it will have the selected friends id 
    NSMutableDictionary *dict = [[NSMutableDictionary alloc]init]; 

    for (NSManagedObject *obj in useridarray) 
    { 
     [ arraylist addObject:[obj valueForKey:@"memberId"]]; 
    } 

    [dict setValue:@"CUSTOM" forKey:@"value"]; 
    [dict setValue:arraylist forKey:@"allow"]; 

    NSError *error; 
    NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dict 
                 options:NSJSONWritingPrettyPrinted 
                 error:&error]; 
    NSString *jsonString; 
    if (! jsonData) { 
     NSLog(@"Got an error: %@", error); 
    } else { 
     jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; 
    } 

    NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys: 
            @"sending notification", @"message",@"Posted via testApp", @"description",jsonData ,@"privacy", 
            nil]; 

    // Make the request 
    if ([FBSession.activeSession isOpen]) 
    { 
     [FBSession openActiveSessionWithPublishPermissions:[NSArray arrayWithObject:@"publish_actions"] 
              defaultAudience:FBSessionDefaultAudienceFriends 
               allowLoginUI:YES 
             completionHandler:^(FBSession *session, FBSessionState status, NSError *error) 
     { 
      if (!error && status == FBSessionStateOpen) 
      { 
       [FBRequestConnection startWithGraphPath:@"/me/feed" 
               parameters:params 
               HTTPMethod:@"POST" 
             completionHandler:^(FBRequestConnection *connection, id result, NSError *error) 
        { 
         if (!error) 
         { 
          // Link posted successfully to Facebook 
          NSLog(@"Result: %@", result); 
         } 
        }]; 

      } 
     }]; 

    } 
} 

пост не получает размещенную в FaceBook.
Я попытался отладить с помощью Точка останова.
Это показывает «ошибка

NSError *domain: @"com.facebook.sdk" - code: 5 0x000000010958d110" 

Если кто знает решение любезно, пожалуйста, помогите мне Спасибо заранее ...

ответ

0

Я изменил код, как эта его работа для меня!

CoreDataManager *coremanagerobj = [[CoreDataManager alloc]init]; 
     NSArray *useridarray = [coremanagerobj GetAllMembersList]; 
     NSString *stringlist = [[NSString alloc]init]; 
     NSMutableDictionary *dict = [[NSMutableDictionary alloc]init]; 

    for (int i=0;i<useridarray.count;i++) 
    { 
     NSManagedObject *obj = [useridarray objectAtIndex:i]; 
     NSString *value = [obj valueForKey:@"memberId"]; 

     if (i==[useridarray count]-1) { 
      stringlist = [ stringlist stringByAppendingString:[NSString stringWithFormat:@"%@",value]]; 
     } 
     else 
     { 
      stringlist = [ stringlist stringByAppendingString:[NSString stringWithFormat:@"%@,",value]]; 
     } 
    } 

[dict setValue:@"CUSTOM" forKey:@"value"]; 
    [dict setValue: stringlist forKey:@"allow"]; 

    NSError *error; 
    NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dict 
                 options:NSJSONWritingPrettyPrinted // Pass 0 if you don't care about the readability of the generated string 
                 error:&error]; 
    NSString *jsonString; 
    if (! jsonData) { 
     NSLog(@"Got an error: %@", error); 
    } else { 
     jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; 
    } 

    NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys: 
            @"sending notification", @"message",@"Posted via testApp", @"description", jsonString,@"privacy", 
            nil]; 

    // Make the request 
    if ([FBSession.activeSession isOpen]) 
    { 
     [FBSession openActiveSessionWithPublishPermissions:[NSArray arrayWithObject:@"publish_actions"] 
              defaultAudience:FBSessionDefaultAudienceFriends 
               allowLoginUI:YES 
             completionHandler:^(FBSession *session, FBSessionState status, NSError *error) 
     { 
      if (!error && status == FBSessionStateOpen) 
      { 
       [FBRequestConnection startWithGraphPath:@"/me/feed" 
               parameters:params 
               HTTPMethod:@"POST" 
             completionHandler:^(FBRequestConnection *connection, id result, NSError *error) 
        { 
         if (!error) 
         { 
          // Link posted successfully to Facebook 
          NSLog(@"Result: %@", result); 
         } 
        }]; 

      } 
     }]; 

    } 
} 

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

  • Нет связанных вопросов^_^