Iphone 如何向朋友发帖';时间轴

Iphone 如何向朋友发帖';时间轴,iphone,ios,facebook,facebook-graph-api,Iphone,Ios,Facebook,Facebook Graph Api,我正试图贴到朋友的墙上,但没有成功 错误: 错误Domain=com.facebook.sdk Code=5“无法执行该操作 已完成。(com.facebook.sdk错误5。)“UserInfo=0xa799fa0 {com.facebook.sdk:HTTPStatusCode=403, sdk:ParsedJSONResponseKey=( { 正文={ 错误={ 代码=200; message=“(#200)此应用程序已禁用向其他用户发布提要故事”; 类型=OAutheException

我正试图贴到朋友的墙上,但没有成功

错误:

错误Domain=com.facebook.sdk Code=5“无法执行该操作 已完成。(com.facebook.sdk错误5。)“UserInfo=0xa799fa0 {com.facebook.sdk:HTTPStatusCode=403, sdk:ParsedJSONResponseKey=( { 正文={ 错误={ 代码=200; message=“(#200)此应用程序已禁用向其他用户发布提要故事”; 类型=OAutheException; }; }; 代码=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;
}
- (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 {
}
在PostViewController中发布到朋友时间线的代码:

-(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;
}
- (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 {
}

截至2013年2月6日,您无法使用该图表方法发布到朋友的时间线

请看这里:


查找,或作为替代方法。

我使用此代码时出错:

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

你查过了吗,朋友墙的帖子被贬低了什么???那么,你是说我不能发到朋友墙,只要把他作为标签或者贴到我自己的墙上就行了?!是的,你不能,在那个链接上自己读。如果你需要的话,你可以使用其他方法。我不能通过FBWebDialog发到朋友那里吗?是的,你可以使用,它已经在备选方案列表(提要对话框)中列出。是的,我看到了,但我的意思是,没有将他作为标记提及,比如发送带有“to”和用户ID的参数,我得到的是“无法发布到用户的墙”删除“redirect_uri”参数。请尝试使用其他用户,因为他可能将“谁可以在您的时间线上发布?”设置为“只有我”。请发布完整的错误,如果有的话。检查用户“谁可以在你的时间线上发布?”?-设置为Friends,我是Friends。重定向\u url已删除。仍然出现错误,无法捕获错误,错误显示在对话框本身上:哇!!问题在于NSDictionary对象之间的逗号。但现在我无法在对话框中包含消息“message”参数似乎不起作用很好,但为什么您需要
message
参数?此对话框不支持该参数。因为我希望用户只需按“发送/发布”,并且要在好友墙上发布的文本将来自应用程序中的文本字段。我不能这样做吗?是否有支持该参数的对话框?