尝试 post 图片时获取 "FBSDKErrorDeveloperMessageKey=(#324) Requires upload file"

Getting "FBSDKErrorDeveloperMessageKey=(#324) Requires upload file" when trying to post image

我目前负责为社交网络应用程序实现几个新功能,其中之一是每当用户发布图片时,它也会自动发布到用户的 facebook 上(与 Instagram 的方式完全相同) .到目前为止,我想到了这个:

FBSDKAccessToken *token = [FBSDKAccessToken currentAccessToken];
FBSDKGraphRequestConnection *connection = [[FBSDKGraphRequestConnection alloc] init];
NSDictionary *parameters = @{
                             @"message" : @"some text",
                             @"picture" : @"http://fanaru.com/doge/image/18353-doge-os-x-doge.jpg",
                             };

FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc] initWithGraphPath:@"me/photos" parameters:parameters tokenString:token.tokenString version:@"v2.3" HTTPMethod:@"POST"];
[connection addRequest:request completionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
    if(error)
        NSLog(@"%@", error);
    else
        NSLog(@"Success");
}];

[connection start];

但每次我 运行 我都会得到这个错误:

Error Domain=com.facebook.sdk.core Code=8 "The operation couldn’t be completed. (com.facebook.sdk.core error 8.)" UserInfo=0x166a64d0 {com.facebook.sdk:FBSDKGraphRequestErrorGraphErrorCode=324, com.facebook.sdk:FBSDKGraphRequestErrorParsedJSONResponseKey={
body = {
error = {
code = 324;
message = "(#324) Requires upload file";
type = OAuthException;
};
};
code = 400;
}, com.facebook.sdk:FBSDKGraphRequestErrorHTTPStatusCodeKey=400, com.facebook.sdk:FBSDKErrorDeveloperMessageKey=(#324) Requires upload file, com.facebook.sdk:FBSDKGraphRequestErrorCategoryKey=0}

我知道我需要将图片上传到 facebook 服务器,但我不知道该怎么做。已经阅读了 Facebook SDK 文档中的大量页面,但仍然没有找到任何解决方案。理想情况下,我还需要专门为此应用程序创建一个新相册,但解决上述问题是我现在主要关心的问题。

提前致谢。

编辑:如你所知,如果我将图形路径更改为 "me/feed" 它工作正常,将图片发布为 link,所以仍然不是我想要的对于.

它给你的错误是正确的。它不需要 URL 它要求您提供文件,但该文件未包含在内。如果您还没有图像,则需要先下载图像并将图像数据包含在参数中。

UIImage *image = (some picture I downloaded);
NSDictionary *parameters = @{
                               @"message" : @"some text",
                               @"picture" : UIImagePNGRepresentation(image),
                            };