2013-05-06 2 views
0

Я пытаюсь отправить к стене друга, без какого-либо успехаКак разместить на Timeline друг

Ошибка:

Error Domain=com.facebook.sdk Code=5 "The operation couldn’t be completed. (com.facebook.sdk error 5.)" UserInfo=0xa799fa0 {com.facebook.sdk:HTTPStatusCode=403, com.facebook.sdk:ParsedJSONResponseKey=( { body = { error = { code = 200; message = "(#200) Feed story publishing to other users is disabled for this application"; type = OAuthException; }; }; code = 403; })

Войти процесс в LoginViewController:

-(IBAction)facebookButtonPressed:(id)sender {  
    [facebook authorize:[self permissions]]; 
} 

- (NSArray *)permissions { 
    static NSArray *pms; 
    if (pms == nil) { 
     pms = [[NSArray alloc] initWithObjects: @"user_photos", @"user_location", @"user_birthday", 
       @"friends_birthday", @"friends_location", @"friends_photos", @"user_relationships", 
       @"publish_actions", @"publish_stream", nil]; 
    } 
    return pms; 
} 

Код для размещения к временной шкале друга в PostViewController:

- (void)postToFriendWall:(NSString *)userId { 
    facebook = [[Facebook alloc]initWithAppId:APP_ID andDelegate:self]; 

    if (![facebook isSessionValid]) { 
     NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
     [facebook setAccessToken:[defaults objectForKey:FB_ACCESS_TOKEN]]; 
     [facebook setExpirationDate:[defaults objectForKey:FB_EXPIRATION_DATE]]; 
    } 

    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
    NSString *defaultWish = [defaults objectForKey:[NSString stringWithFormat:@"%@%@", DEFAULT_WISH, [defaults objectForKey:FB_USER_ID]]]; 
    NSString *defaultImage = [defaults objectForKey:[NSString stringWithFormat:@"%@%@", DEFAULT_IMAGE, [defaults objectForKey:FB_USER_ID]]]; 

    if (defaultImage == nil && defaultWish == nil) { 
     [self showAlertViewWithTitle:@"Post wasn't sent" message:@""]; 
     return; 
    } 

    NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:nil]; 
    [params setObject:defaultWish forKey:@"message"]; 
    if (![defaultImage isEqualToString:@"none"]) 
     [params setObject:[UIImage imageNamed:defaultImage] forKey:@"picture"]; 

    [facebook requestWithGraphPath:[NSString stringWithFormat:@"%@/feed", userId] andParams:params andHttpMethod:@"POST" andDelegate:self]; 
} 

- (void)request:(FBRequest *)request didLoad:(id)result { 
} 

- (void)fbDidLogin { 
} 

- (void)fbDidExtendToken:(NSString*)accessToken expiresAt:(NSDate*)expiresAt { 
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
    [defaults setObject:[facebook accessToken] forKey:FB_ACCESS_TOKEN]; 
    [defaults setObject:[facebook expirationDate] forKey:FB_EXPIRATION_DATE]; 

    [defaults synchronize]; 
} 

- (void)request:(FBRequest *)request didFailWithError:(NSError *)error { 
    NSString *errorDescription = [error description]; 
} 

- (void)request:(FBRequest *)request didReceiveResponse:(NSURLResponse *)response { 
} 

- (void)fbDidNotLogin:(BOOL)cancelled{ 
} 

- (void)fbDidLogout{ 
} 

- (void)fbSessionInvalidated{ 
} 

- (void)fbDialogLogin:(NSString *)token expirationDate:(NSDate *)expirationDate { 
} 

- (void)fbDialogNotLogin:(BOOL)cancelled { 
} 
+0

вы проверили, [это] (https://developers.facebook.com/blog/post/2012/10/10/growing-quality- apps-with-open-graph /), публикация стены друга была обесценена –

ответ

1

По состоянию на 6 февраля 2013 года вы не можете публиковать на временной шкале Друга с помощью этого метода Графа.

Читайте здесь: https://developers.facebook.com/roadmap/completed-changes/

Посмотрите на feed Dialog, user mentions tagging или Open Graph Actions в качестве альтернативы.

+0

Что ??? Итак, вы говорите мне, что я не могу отправить в стену друга, просто упомянуть его как ярлык или сообщение на мою собственную стену ?! – assafey

+0

да, вы не можете, прочитайте его для себя по этой ссылке. Вы можете использовать альтернативы, если они соответствуют вашим потребностям. – ThePCWizard

+0

Не могу я отправить другу через FBWebDialog? – assafey

0

Я использую этот код и получил ошибку:

- (void)showFeedDialog { 
    // Put together the dialog parameters 
    NSMutableDictionary *params = 
    [NSMutableDictionary dictionaryWithObjectsAndKeys: 
    @"MY_APP_ID", @"app_id" 
    @"feed", @"method" 
    @"USER_ID", @"to", 
    @"try", @"caption", 
    @"https://develo‌​pers.facebook.com/docs/reference/dialogs/", @"link", 
    @"try link", @"name", 
    @"http://fbrell.com/f8.jpg", @"picture", 
    @"Using%20Dialogs%2‌​0to%20interact%20with%20users.", @"description", 
    @"https://mighty-lowlands-638‌​1.herokuapp.com/", @"redirect_uri", 
    nil]; 

    // Invoke the dialog 
    [FBWebDialogs presentFeedDialogModallyWithSession:nil//[FBSession activeSession] 
              parameters:params 
               handler: 
    ^(FBWebDialogResult result, NSURL *resultURL, NSError *error) { 
     if (error) { 
      // Case A: Error launching the dialog or publishing story. 
      NSLog(@"Error publishing story."); 
     } else { 
      if (result == FBWebDialogResultDialogNotCompleted) { 
       // Case B: User clicked the "x" icon 
       NSLog(@"User canceled story publishing."); 
      } else { 
       // Case C: Dialog shown and the user clicks Cancel or Share 
       NSDictionary *urlParams = [self parseURLParams:[resultURL query]]; 
       if (![urlParams valueForKey:@"post_id"]) { 
        // User clicked the Cancel button 
        NSLog(@"User canceled story publishing."); 
       } else { 
        // User clicked the Share button 
        NSString *postID = [urlParams valueForKey:@"post_id"]; 
        NSLog(@"Posted story, id: %@", postID); 
       } 
      } 
     } 
    }]; 
} 
+0

удалите параметр redirect_uri. Попробуйте с другим пользователем, поскольку у него может быть «Кто может опубликовать ваш график?» установите значение «Только меня». Пожалуйста, отправьте полную ошибку, если она есть сейчас. – ThePCWizard

+0

Проверено пользователем: «Кто может оставлять сообщения на вашей временной шкале?» - Он настроен на друзей, и я друг. redirect_url удален. Все еще получая ошибку, вы не можете поймать ошибку, она отображается в самом диалоге: http://tinypic.com/view.php?pic=68uauc&s=5 – assafey

+0

Ух ты! Проблема заключалась в запятых между объектами NSDictionay. Но теперь я не могу включить сообщение в диалог, параметр «сообщение», похоже, не работает. – assafey

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