Facebook批量照片上传iOS

iOS*_*vSF 14 facebook facebook-graph-api ios facebook-ios-sdk

我在试图让Facebook iOS SDK批量上传照片时遇到了一些麻烦.目前我可以逐个上传它们,但我想尽可能批量处理请求.我已阅读本唱完后与一起FB批量文档.这是我到目前为止所拥有的.

 Facebook *facebook = [(AppDelegate*)[[UIApplication sharedApplication] delegate] facebook]; 

        NSData *imageData = UIImagePNGRepresentation([imgs objectAtIndex:0]);
   NSString *jsonRequest1 = [NSString stringWithFormat:@"{ \"method\": \"POST\",    \"relative_url\": \"me/photos\", \"attached_files\": \"file1\" }"];
        NSString *jsonRequest2 = [NSString stringWithFormat:@"{ \"method\": \"POST\", \"relative_url\": \"me/photos\", \"attached_files\": \"file2\" }"];
        NSString *jsonRequestsArray = [NSString stringWithFormat:@"[ %@, %@ ]", jsonRequest1, jsonRequest2];


    NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:jsonRequestsArray,@"batch",imageData,@"file1",imageData,@"file2" nil];
Run Code Online (Sandbox Code Playgroud)

我将imageData映射到它正在寻找的键,但我每次都得到这个响应.

  {
        body = "{\"error\":{\"message\":\"File batch has not been attached\",\"type\":\"GraphBatchException\"}}";
        code = 400;
        headers =         (
                        {
                name = "WWW-Authenticate";
                value = "OAuth \"Facebook Platform\" \"invalid_request\" \"File batch has not been attached\"";
            },
                        {
                name = "HTTP/1.1";
                value = "400 Bad Request";
            },
                        {
                name = "Cache-Control";
                value = "no-store";
            },
                        {
                name = "Content-Type";
                value = "text/javascript; charset=UTF-8";
            }
        );
    },
        {
        body = "{\"error\":{\"message\":\"File file2 has not been attached\",\"type\":\"GraphBatchException\"}}";
        code = 400;
        headers =         (
                        {
                name = "WWW-Authenticate";
                value = "OAuth \"Facebook Platform\" \"invalid_request\" \"File file2 has not been attached\"";
            },
                        {
                name = "HTTP/1.1";
                value = "400 Bad Request";
            },
                        {
                name = "Cache-Control";
                value = "no-store";
            },
                        {
                name = "Content-Type";
                value = "text/javascript; charset=UTF-8";
            }
        );
    }
)
Run Code Online (Sandbox Code Playgroud)

很感谢任何形式的帮助.

Ami*_*aor 1

使用新的 Facebook SDK (3.0)尝试如下操作:

FBRequestConnection *connection = [[FBRequestConnection alloc] init];

FBRequest *request1 = [FBRequest requestForUploadPhoto:image1];
[connection addRequest:request1
     completionHandler:
 ^(FBRequestConnection *connection, id result, NSError *error) {
     //handle error/success
 }
 ];

FBRequest *request2 = [FBRequest requestForUploadPhoto:image2];
[connection addRequest:request2
     completionHandler:
 ^(FBRequestConnection *connection, id result, NSError *error) {
     //handle error/success
 }
 ];

[connection start];
Run Code Online (Sandbox Code Playgroud)