2013-05-07 29 views
5

Tôi cố gắng để xuất bản một hành động graph mở bằng cách sử dụng iOS SDK, sử dụng đoạn mã sau:lỗi trong việc sử dụng FBRequest để gửi action graph mở trong Facebook 3.5 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"); 
     } 
    }]; 

Tuy nhiên tôi nhận được một lỗi và sau đó ứng dụng bị lỗi trong startForPostWithOpenGraphPath của tôi. Dưới đây là các lỗi:

*** 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 
+0

có câu trả lời cuối cùng nào cho điều này không? –

Trả lời

2

Trong startForPostWithGraphPath của bạn, bạn đang đi qua các "đối tượng" mà bạn vừa tạo, tuy nhiên, bạn không thể vượt qua mà như là một phần của một hành động biểu đồ mở. Những gì bạn nên làm là nhìn vào "kết quả" quay lại, lấy "id" ra khỏi nó, và xây dựng một NSDictionary (hoặc FBOpenGraphObject) với một cái gì đó như:

@ {@ "quote": objectID}

Trường hợp objectID là "id" từ kết quả của bài đăng đầu tiên.

+0

Tôi đoán đó là câu hỏi tiếp theo của tôi, làm thế nào để bạn soạn một đối tượng đồ thị từ một id đã cho. – adit

+0

id action = (id ) [FBGraphObject graphObject]; –

+0

thì bạn có thể gọi setObject: ForKey: trên hành động. –

Các vấn đề liên quan