7

Tôi đang cố gắng thực hiện Thích thông qua facebook open-graph-api bằng Facebook iOS SDK 3.0. Mọi thứ dường như hoạt động ngoại trừ FbGraphObject và đó là bởi vì tôi không có ý tưởng nó trông như thế nào vì điều này rõ ràng không hoạt động.Facebook iOS SDK 3.0, thực hiện như hành động trên url?

Những gì tôi đang cố gắng làm là thích một url được đăng dưới dạng đối tượng. Một đơn giản Giống như với thông qua biểu đồ mở.

Thông báo lỗi tôi nhận được mã dưới đây là:

The action you're trying to publish is invalid because it does not specify any 
reference objects. At least one of the following properties must be specified: object. 

Code tôi sử dụng là:

FBGraphObject *objectToLike = [[FBGraphObject alloc]initWithContentsOfURL:[NSURL URLWithString:facebookLike.titleLabel.text]]; 

    FBRequest *requestLike = [[FBRequest alloc]initForPostWithSession:[FBSession activeSession] graphPath:@"me/og.likes" graphObject:objectToLike]; 

    FBRequestConnection *connection = [[FBRequestConnection alloc] init]; 
    [connection addRequest:requestLike 
     completionHandler: 
    ^(FBRequestConnection *connection, id result, NSError *error) { 
     if (!error && 
      result) { 

      DLog(@"NothingWentWrong"); 
     } 

     DLog(@"MajorError: %@", error); 

    } 
    ]; 

    [connection start]; 

UPDATE:

Kiểm tra một số thông tin hơn và tôi đoán nó sẽ sử dụng phương pháp này: https://developers.facebook.com/docs/sdk-reference/iossdk/3.0/class/FBGraphObject/#//api/name/graphObject

Bằng cách nào đó, hãy tạo một đối tượng. Đó là phương thức graphObject mà tôi có thể cần phải làm gì đó. Bất kì sự giúp đỡ nào cũng được hoan nghênh.

Trả lời

6

Tôi đã thực sự quản lý để tạo ra một giải pháp đơn giản và khá bẩn này. Giải pháp dường như không tối ưu nhưng hiện tại nó là giải pháp làm việc.

Nếu ai đã sử dụng các công cụ thám hiểm trên facebook trên url này: https://developers.facebook.com/tools/explorer/

Bạn biết làm thế nào URL sẽ giống như khi facebook là chia sẻ một như thế nào. Nó phải có URL và một mã thông báo truy cập. Vì vậy, giải pháp của tôi đã trở thành chỉ để bỏ qua việc gửi bất cứ điều gì từ Facebook SDK và chỉ cần gửi một yêu cầu gửi đến cùng một URL mà tôi đã sử dụng trong công cụ thám hiểm.

Dường như có một số tham khảo để nó trên các tài liệu Facebooks nếu bạn nhìn kỹ và sâu, nhưng không ai giải thích một cách chính xác làm thế nào để thực sự làm cho các kết nối, vì vậy đây là giải pháp của tôi:

NSString *urlToLikeFor = facebookLike.titleLabel.text; 

NSString *theWholeUrl = [NSString stringWithFormat:@"https://graph.facebook.com/me/og.likes?object=%@&access_token=%@", urlToLikeFor, FBSession.activeSession.accessToken]; 
NSLog(@"TheWholeUrl: %@", theWholeUrl); 

NSURL *facebookUrl = [NSURL URLWithString:theWholeUrl]; 

NSMutableURLRequest *req = [NSMutableURLRequest requestWithURL:facebookUrl]; 
[req setHTTPMethod:@"POST"]; 

NSURLResponse *response; 
NSError *err; 
NSData *responseData = [NSURLConnection sendSynchronousRequest:req returningResponse:&response error:&err]; 
NSString *content = [NSString stringWithUTF8String:[responseData bytes]]; 

NSLog(@"responseData: %@", content); 

Nếu bạn nhìn vào mã tôi chỉ lấy url và đặt hai chuỗi động vào url, một với url đối tượng và một với mã thông báo truy cập. Tôi tạo ra một URLRequest và làm cho nó một yêu cầu POST, và phản ứng từ facebook được đăng nhập để thực sự có thể xem nếu như đi qua hay không.

Có thể có một số cải tiến hiệu suất có thể được thực hiện với các yêu cầu thực tế nhưng tôi sẽ để nó tùy thuộc vào bạn nếu bạn thấy bất kỳ sự chậm lại nào.

Tôi vẫn quan tâm đến các giải pháp khác nhưng đây là giải pháp tôi sẽ sử dụng ngay bây giờ.

+0

Bạn có thể vui lòng cho tôi biết "urlToLikeFor" là gì, chỉ là 'id' hoặc url hoàn chỉnh của trang bất kỳ –

+0

URL hoàn chỉnh của trang web, trang web này phải triển khai thẻ meta mà facebook cung cấp . –

+0

Thanx Để trả lời ... bạn có nghĩa là như thế này http://stackoverflow.com/questions/9038025/facebook-object-debugger-property-ogurl-could-not-be-parsed-as-type-url –

0

Tôi không chắc chắn những gì initWithContentsOfURL làm, nhưng từ tên tôi đoán nó cố gắng thực sự tải nội dung từ một URL nhất định (?).

Bạn chỉ phải cung cấp URL dưới dạng tham số văn bản - một URL điều gì thể hiện đối tượng Open Graph. Facebook sẽ thực hiện phần còn lại, cào trang đằng sau URL đó và đọc thẻ meta OG, v.v.

+0

theo url dưới dạng tham số văn bản bạn có nghĩa là chuỗi không? và bạn có thể cho tôi một số gợi ý về cách thực hiện nó không? –

+0

Có, và không (vì tôi không thực hiện bất kỳ nội dung nào về iPhone). – CBroe

+0

Vấn đề duy nhất là trường hợp của FBGraphObject dường như không chấp nhận một chuỗi theo bất kỳ cách nào. Vấn đề ở đây là FBGraphObject là bằng cách nào đó sai và tôi không thể làm cho chuỗi của tôi một đối tượng. Tôi khá chắc chắn rằng tôi đã thực hiện sai FBGraphObject. –

0

Có lẽ chỉ có thế này?

FBRequest *requestLike = [[FBRequest alloc]initForPostWithSession:[FBSession activeSession] 
    graphPath:@"me/og.likes" 
    graphObject:[NSURL URLWithString:facebookLike.titleLabel.text]]; 
+1

đã thử nó, tôi bằng cách nào đó phải thực hiện các giao thức FBOpenGraphAction, Nhưng tôi vẫn không khá chắc chắn như thế nào. http://developers.facebook.com/docs/sdk-reference/iossdk/3.0/protocol/FBOpenGraphAction/ –

+0

Điều tôi đang nói là nó không hoạt động. –

2

Hiện tại, chúng tôi không hỗ trợ Thích thông qua API đồ thị của chúng tôi. Những gì bạn có thể xem qua là một cái gì đó như thế này: https://developers.facebook.com/docs/opengraph/actions/builtin/likes/

+0

Đó là những gì tôi đang cố gắng làm: P. –

+0

Bất kỳ ý tưởng nào khi tính năng này đang đến? Đây phải là một trong những tính năng được yêu cầu nhiều nhất. –

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