【问题标题】:iOS: Photo uploaded to Facebook does not always uploadiOS:上传到 Facebook 的照片并不总是上传
【发布时间】: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 个人资料上。

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

【问题讨论】:

    标签: ios facebook upload photo fbconnect


    【解决方案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

    【讨论】:

      猜你喜欢
      • 2012-02-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-07
      • 1970-01-01
      • 2012-08-19
      • 2011-04-08
      相关资源
      最近更新 更多