“Like” a Page using the Facebook Graph API, Objective C

假装没事ソ 提交于 2019-12-06 03:29:32

问题


I'm trying to allow the user of my iOS app to "Like" a page using the following code:

NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"access_token",[[NSUserDefaults standardUserDefaults] objectForKey:@"fb_accessToken"], nil];

[facebook requestWithGraphPath:@"PAGE_ID/likes" andParams:params andHttpMethod:@"POST" andDelegate:self];

I get the error message:

Error Domain=facebookErrDomain Code=10000 "The operation couldn’t be completed. (facebookErrDomain error 10000.)" UserInfo=0x624d560 {error=<CFBasicHash 0x6243fb0 [0x171e400]>{type = mutable dict, count = 2,
        entries =>
            2 : <CFString 0x624cec0 [0x171e400]>{contents = "type"} = <CFString 0x624bc40 [0x171e400]>{contents = "OAuthException"}
            3 : <CFString 0x624aaf0 [0x171e400]>{contents = "message"} = <CFString 0x6248b50 [0x171e400]>{contents = "(#3) Application does not have the capability to make this API call."}
        }
        }

This should be part of the Graph API because it says you can use that to "Like" any object with a /Likes connections. Any help?


回答1:


Sorry to be the bearer of bad news, but apparently You can't like a Page on behalf of a user. You can, however, like posts, comments, and photos on behalf of a user.

Hope this makes sense, I've spent the last few hours trying to do simular.

Rich




回答2:


This appears to have recently changed, but now there is a new API - see https://developers.facebook.com/docs/opengraph/actions/builtin/likes/ for details.




回答3:


https://developers.facebook.com/docs/reference/rest/stream.addLike/

and like a post

NSMutableDictionary* dict = [[[NSMutableDictionary alloc]initWithObjectsAndKeys:PostId,@"post_id",nil]autorelease];

[AppDelegate.facebook requestWithMethodName:@"stream.addLike" andParams:dict andHttpMethod:@"POST"  andDelegate:self];

and remove like

NSMutableDictionary* dict = [[[NSMutableDictionary alloc]initWithObjectsAndKeys:PostId,@"post_id",nil]autorelease];

[AppDelegate.facebook requestWithMethodName:@"stream.removeLike" andParams:dict andHttpMethod:@"POST"  andDelegate:self];`



回答4:


The second paragraph of the page linked by Eric Kassan states that: "The og.likes action can refer to any open graph object or URL, except for Facebook Pages or Photos."




回答5:


I have spent 10 hours for this solution.

But unfortunfortunitly there is not way.. even they have said "any object" in "likes" graph api but it's limited to only "users, it's posts, comments and photos".



来源:https://stackoverflow.com/questions/6024978/like-a-page-using-the-facebook-graph-api-objective-c

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!