使用 Facebook IOS SDK 3.1 和 Graph API 发布带有标题的图片

Posted

技术标签:

【中文标题】使用 Facebook IOS SDK 3.1 和 Graph API 发布带有标题的图片【英文标题】:Posting image with caption with Facebook IOS SDK 3.1 and Graph API 【发布时间】:2012-12-27 08:40:22 【问题描述】:

我是 facebook SDK 的新手。 上次我使用 facebook ios SDK 3.0 并通过图形 API 发布图像。它正在工作,但现在没有。我升级到 3.1 但仍然总是返回 HTTP ERROR 200。有人可以帮助我吗?

这是代码

- (void) facebookPostPhoto:(UIImage *)photo withMessage:(NSString *)msg withOkAction:(SEL)okAction andNGAction:(SEL)ngAction withTarget:(id)target 
ok = okAction;
ng = ngAction;
curView = target;
NSMutableDictionary *params;
params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
          UIImageJPEGRepresentation(photo, 90), @"source",
          msg, @"message",             
          nil];

if ([FBSession.activeSession.permissions indexOfObject:FacebookPermission_3] == NSNotFound) 
    NSLog(@"permission not found");
    // No permissions found in session, ask for it
    [FBSession.activeSession reauthorizeWithPublishPermissions:[NSArray arrayWithObjects:FacebookPermission_1, FacebookPermission_3, nil] defaultAudience:FBSessionDefaultAudienceFriends completionHandler:^(FBSession *session, NSError *error)
     
         // If permissions granted, publish the story
         if (!error) [self initPostFacebookWithParams:params];
     ];
 else 
    [self initPostFacebookWithParams:params];
  

- (void)initPostFacebookWithParams:(NSMutableDictionary *)params 

[FBRequestConnection startWithGraphpath:@"me/photos" parameters:params HTTPMethod:@"POST" completionHandler:^(FBRequestConnection *connection, id result, NSError *error) 
    NSLog(@"ERROR : %@", error.localizedDescription);
    if (!error) 
        NSLog(@"Facebook Post Success..");
        if (ok && curView) 
            [curView performSelector:ok];
        


     else 
        NSLog(@"Facebook Post Failed..");
        if (ng && curView) 
            [curView performSelector:ng withObject:error];
        

    

]; 

感谢您的快速响应和帮助!谢谢!!

【问题讨论】:

你确定你有发布的权限吗?当调用 [self initPostFacebookWithParams:params];您提到的错误代码是权限错误代码 是的。 [FBSession.activeSession reauthorizeWithPublishPermissions:...我以前用过。我同时使用 publish_actions 和 publish_stream 你看到你的日志 NSLog(@"permission not found");? 是的。有时我会看到它。完成后,HTTP 错误 200 仍然存在 FacebookPermission_1 或 publish_actions 只是一个与发布权限相关联的字符串,所以实际上你可以使用任何你想要的,但是为什么你要混合两个权限呢? 【参考方案1】:

我认为要么是 facebook 上传的服务器出现故障,要么是有关于图像大小的新政策。当我将图像缩小到 320x320 时,它不会返回任何错误,顺便说一下有时也会出错。

因此,对于看到此问题的人,请尝试将图像调整为更小的尺寸。

【讨论】:

以上是关于使用 Facebook IOS SDK 3.1 和 Graph API 发布带有标题的图片的主要内容,如果未能解决你的问题,请参考以下文章

使用 Facebook IOS SDK 3.1 和 Graph API 发布带有标题的图片

使用 ios facebook SDK 3.1 在墙上发布

Facebook iOS SDK 3.1 - 发送私人消息

以用户身份将照片发布到 Facebook 粉丝页面。 iOS Facebook SDK 3.1

如何在 iOS 上使用 Facebook SDK 3.1 获取用户的电子邮件?

如何从 facebook ios sdk 3.1 中提取 facebook 电子邮件?