iOS:上传到 Facebook 的照片并不总是上传

Posted

技术标签:

【中文标题】iOS:上传到 Facebook 的照片并不总是上传【英文标题】:iOS: Photo uploaded to Facebook does not always upload 【发布时间】:2011-11-08 01:06:54 【问题描述】:

我有一个 iPhone/iPad 应用程序,它可以进行一些基本的照片编辑,并让用户可以选择将成品上传到 Facebook。该应用程序拥有超过 100,000 名用户,大多数人似乎都可以将照片上传到 Facebook。然而,有少数用户似乎无法上传他们的照片,无论他们尝试什么。我与他们合作以确保不是应用程序权限或 Facebook 设置阻止了他们,并且在那里找不到任何问题。所以我想知道我是否在使用 FBConnect 时做错了什么,导致问题偶尔出现。代码如下:

- (void)initFacebook 
  if( self.facebook == nil ) 
    Facebook *fb = [[Facebook alloc] init];
    self.facebook = fb;
    [fb release];
  

  if( [self.facebook isSessionValid] )  
    [[NSNotificationCenter defaultCenter] postNotificationName:@"FacebookIsReady"
                                                    object:nil
                                                  userInfo:nil];

   else 
    NSArray *perms = [NSArray arrayWithObjects:@"publish_stream", @"user_likes", nil];
    [self.facebook authorize:MY_FB_APP_ID permissions:perms delegate:self];
  


-(void)fbDidLogin 
    [[NSNotificationCenter defaultCenter] postNotificationName:@"FacebookIsReady"
                                                    object:nil
                                                  userInfo:nil];


// this is in a different class
- (void)facebookIsReady:(NSNotification *)notification     
    AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
    NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:self.theImage, @"source", nil];

    [appDelegate.facebook requestWithGraphpath:@"/me/photos" 
                                         andParams:params 
                                     andHttpMethod:@"POST" 
                                       andDelegate:appDelegate];

在 FBRequestDelegate 中,即使照片未能出现在 Facebook 个人资料中,也始终调用 didLoad。所以我得到的是代码似乎永远不会失败,但照片并不总是出现在 Facebook 个人资料上。

是否有可能该应用无法在用户个人资料上创建新相册?我以前曾在各个小组上看到其他人报告过这个问题,但从未找到实际的解决方案。谢谢。

【问题讨论】:

【参考方案1】:

您必须在您的权限数组中包含user_photos,如下所示:

NSArray *permissions = [[NSArray alloc] initWithObjects:
    @"user_photos",
    @"publish_stream",
    @"user_likes",
     nil];

这里是所有权限的列表:https://developers.facebook.com/docs/reference/api/permissions/

【讨论】:

补充一点:如果没有user_photos,如果照片上传成功,请用户手动导航到他们的相册并浏览一下。如果它确实有效,他们可能会遇到一个 UI,告诉他们有待处理的上传需要手动批准。该对话框非常低调,因此很容易错过。 (此外,可能还有一个手动隐私设置,即使包含user_photos 权限,用户也可以切换以强制执行此行为 - 只是猜测。)【参考方案2】: 在 Facebook vie Social Framework 上上传照片要容易得多。 请检查以下链接 Fabecook Sharing

【讨论】:

以上是关于iOS:上传到 Facebook 的照片并不总是上传的主要内容,如果未能解决你的问题,请参考以下文章

facebook ios sdk - 上传照片到粉丝页面

通过 Graph API 和 iOS 将照片上传到相册时出现 Facebook 错误:(#1) 发生未知错误

Facebook iOS SDK - 分享用户照片

使用 iOS SDK 将多张照片作为单个帖子上传,例如时间线照片,而不是 Facebook 中的相册

如何使用 iPhone 中的 Graph API 在 Facebook 上上传照片?

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