Facebook iOS SDK 3.0,在网址上实现类似操作?

Joa*_*rom 7 iphone facebook objective-c facebook-graph-api facebook-ios-sdk

我正试图通过Facebook iOS-SDK 3.0实现与facebook open-graph-api一样.除了FbGraphObject之外,一切似乎都有效,因为我不知道它应该是什么样子,因为这显然不起作用.

我想要做的是喜欢作为对象发布的网址.一个简单的喜欢通过开放图.

我得到以下代码的错误消息是:

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.
Run Code Online (Sandbox Code Playgroud)

我使用的代码是这样的:

    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];
Run Code Online (Sandbox Code Playgroud)

更新:

检查了一些更多的信息,我猜它使用这个方法:https: //developers.facebook.com/docs/sdk-reference/iossdk/3.0/class/FBGraphObject/#//api/name/graphObject

以某种方式创建一个对象.这是我可能需要做的事情的graphObject方法.任何帮助都将不胜感激.

Joa*_*rom 6

我实际上设法创建一个简单而相当肮脏的解决方案.该解决方案似乎不是最佳的,但它目前是一个有效的解决方案.

如果有人在Facebook上使用了这个网址上的资源管理器工具:https: //developers.facebook.com/tools/explorer/

你知道当Facebook分享喜欢的时候URL会是什么样子.它必须具有URL和访问令牌.因此,我的解决方案只是忽略从Facebook SDK发送任何内容,只是将发布请求发送到我在资源管理器工具中使用的相同URL.

如果你仔细观察,似乎在facebooks文档上有一些引用它,但没有人确切地解释如何实际建立连接,所以这是我的解决方案:

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);
Run Code Online (Sandbox Code Playgroud)

如果你查看代码,我只需要获取url并在url中放入两个动态字符串,一个包含object-url,另一个包含访问令牌.我创建了一个URLRequest并使其成为一个POST请求,并且来自facebook的响应被记录下来,所以实际上可以看到是否通过了.

可能会有一些性能改进可以通过实际请求完成,但如果您发现任何减速,我会留给您.

我仍然对其他解决方案感兴趣,但这是我现在要使用的解决方案.