2013-05-08 81 views
1

我想创建一个打开图形对象,并将用户生成的照片上载到分段资源中,以便使用它发布操作。我正在使用iOS的最新Facebook SDK(3.5)。 的代码如下:用户图像作为打开图形对象 - iOS

[FBRequestConnection startForUploadStagingResourceWithImage:self.image completionHandler:^(FBRequestConnection *connection, id result, NSError *error) { 
     if (!error){ 
      NSString *uri = [result valueForKey:@"uri"]; 

      NSMutableDictionary<FBOpenGraphObject> *object = [FBGraphObject openGraphObjectForPost]; 
      object.provisionedForPost = YES; 
      object[@"type"] = @"<APP_NAME>:<OBJECT_NAME>"; 
      object[@"url"] = uri; 
      object[@"title"] = @"My Title"; 
      object[@"user_generated"] = @"true"; 

      [FBRequestConnection startForPostOpenGraphObject:object 
              completionHandler:^(FBRequestConnection *connection, id result, NSError *error) { 

    }]; 
}]; 

startForPostOpenGraphObject结束块:我应该与新创建的对象的ID来电startForPostWithGraphPath。然而,我没有身份证,但有一个错误:

Error Domain=com.facebook.sdk Code=5 "The operation couldn’t be completed. (com.facebook.sdk error 5.)" UserInfo=0x1f2f14a0 {com.facebook.sdk:HTTPStatusCode=500, com.facebook.sdk:ParsedJSONResponseKey={ 
body =  { 
    error =   { 
     code = 1; 
     message = "An unknown error has occurred."; 
     type = OAuthException; 
    }; 
}; 
code = 500; 
}, com.facebook.sdk:ErrorSessionKey=<FBSession: 0x1f2ca300, state: FBSessionStateOpen, loginHandler: 0x1f2cb750, appID: **************, urlSchemeSuffix: , tokenCachingStrategy:<FBSessionTokenCachingStrategy: 0x1e56ed00>, expirationDate: 4001-01-01 00:00:00 +0000, refreshDate: 2013-05-08 09:07:56 +0000, `attemptedRefreshDate`: 0001-12-30 00:00:00 +0000, permissions:(
"user_photos", 
"publish_stream", 
"publish_actions" 
)>} 

我在做什么错?

回答

0

两个URL和user_generated性质需要图像属性,这也是一个数组下得去,所以这样的事情应该工作:

object[@"type"] = @"<APP_NAME>:<OBJECT_NAME>"; 
object[@"title"] = @"My Title"; 
object[@"image"] = @[@{@"url": uri, @"user_generated":@"true"}]; 

您还可以看到关于如何做美味的样本它作为批量请求的一部分。

+0

美味的样品非常有用。谢谢。 – 2013-05-09 09:18:23