使用新的iOS Facebook SDK API上传照片(3.0)

时间:2012-08-15 18:30:14

标签: objective-c ios facebook facebook-ios-sdk

如何使用新的API / SDK从iOS应用上传照片到脸书?我已经尝试过了,我没有到达任何地方,只是继续在圈子里跑。这是我目前的代码:

-(void)dataForFaceboo{
    self.postParams =
    [[NSMutableDictionary alloc] initWithObjectsAndKeys:
     self.uploadPhoto.image, @"picture", nil];
}

-(void)uploadToFacebook{

    [self dataForFacebook];

    NSLog(@"Going to facebook: %@", self.postParams);

    // Hide keyboard if showing when button clicked
    if ([self.photoCaption isFirstResponder]) {
        [self.photoCaption resignFirstResponder];
    }
    // Add user message parameter if user filled it in
    if (![self.photoCaption.text
        isEqualToString:kPlaceholderPostMessage] &&
        ![self.photoCaption.text isEqualToString:@""]) 
    {
        [self.postParams setObject:self.photoCaption.text forKey:@"message"];
    }
    [FBRequestConnection startWithGraphPath:@"me/feed"
        parameters:self.postParams
        HTTPMethod:@"POST"
        completionHandler:^(FBRequestConnection *connection,
                            id result,
                            NSError *error) 
    {
        NSString *alertText;
        if (error) {
            alertText = [NSString stringWithFormat:
                         @"error: domain = %@, code = %d",
                      error.domain, error.code];
        } else {
            alertText = [NSString stringWithFormat:
                         @"Posted action, id: %@",
                         [result objectForKey:@"id"]];
        }
        // Show the result in an alert
        [[[UIAlertView alloc] initWithTitle:@"Result"
                              message:alertText
                              delegate:self
                              cancelButtonTitle:@"OK!"
                              otherButtonTitles:nil] show];
    }];
}

2 个答案:

答案 0 :(得分:12)

您的代码很好,稍作修改:

NSData格式将图像添加到字典中,例如

[params setObject:UIImagePNGRepresentation(_image) forKey:@"picture"];

并将图表路径更改为"me/photos"而不是"me/feed"

进行这些更改,它对我有用。 请记住,您需要使用“publish_actions”权限。

答案 1 :(得分:0)

“我/照片”是指照片实际上位于Facebook个人资料中的“照片”列表中。 “me / feed”只是时间轴上的一个帖子。