在使用Facebook 3.5 iOS SDK中的FBRequest发布open graph动作时出现错误

5
我正在尝试使用iOS SDK发布开放图谱操作,使用以下代码:

我正在尝试使用iOS SDK发布开放图谱操作,使用以下代码:

[FBRequestConnection startForUploadStagingResourceWithImage: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"] = @"myapp:Quote";
            object[@"image"] = uri;
            object[@"title"] = @"Check out my quote";

            [FBRequestConnection startForPostOpenGraphObject:object
                       completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
                           if(error) {
                               NSLog(@"Error: %@", error);
                           } else {

                               NSString *graphPath = [NSString stringWithFormat:@"me/quotestagramapp.quote"];
                               [FBRequestConnection startForPostWithGraphPath:graphPath
                                                                  graphObject:object
                                                            completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
                                                                if (error){
                                                                    NSLog(@"Error is %@", [error description]);
                                                                } else {
                                                                    NSLog(@"Successful");
                                                                }
                                                            }];
                           }
                       }];
        } else {
            NSLog(@"Error uploading image to fb staging");
        }
    }];

然而我在 startForPostWithOpenGraphPath 中遇到了错误,应用程序随后崩溃了。以下是错误信息:

   *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFBoolean dataUsingEncoding:]: unrecognized selector sent to instance 0x3a9be530'
*** First throw call stack:
(0x3261c2a3 0x3a34497f 0x3261fe07 0x3261e531 0x32575f68 0x1e9ac1 0x1e9b8d 0x1eb521 0x1ec639 0x1eca19 0x1eb28d 0x1ea0f9 0x1eac49 0x1e5ca5 0x110ecb 0x1edc11 0x1ece77 0x1eaebf 0x1ef3af 0x1ef2e9 0x1ef923 0x32f576fd 0x32e971f9 0x32e97115 0x322f945f 0x322f8b43 0x32320fcb 0x3256274d 0x3232142b 0x3228503d 0x325f1683 0x325f0ee9 0x325efcb7 0x32562ebd 0x32562d49 0x3613b2eb 0x34478301 0x109bb1 0xfd3b8)
libc++abi.dylib: terminate called throwing an exception

这个问题有最终答案吗? - Jacek Kwiecień
1个回答

2
在你的startForPostWithGraphPath方法中,你传递了刚创建的“object”,但是你不能将它作为开放图谱操作的一部分。你应该查看返回的“result”,从中获取“id”,并构建一个NSDictionary(或FBOpenGraphObject),例如:

@{ @"quote": objectID}

其中objectID是第一个post结果中的“id”。


我猜那就是我的下一个问题,你如何从给定的ID组合成一个图形对象。 - adit
id<FBOpenGraphAction> action = (id<FBOpenGraphAction>)[FBGraphObject graphObject];将上述程序代码翻译成中文。 - Ming Li
然后您可以在操作上调用setObject:forKey:。 - Ming Li

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接