6

我已经花了几个小时在这上面,但无法让它工作。基本上,我只想要我的应用程序中的一个按钮,它会在 Facebook 上“点赞”自己。我已经在开发 Facebook 上创建了该应用程序,并有一个关联的应用程序页面。在我的代码中,我请求这些权限:

_permissions =  [NSArray arrayWithObjects:@"publish_stream", @"publish_actions", @"user_birthday", nil];

我可以很好地检索个人资料图片,但是当我尝试使用此代码“喜欢”时:

NSMutableDictionary* params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                                       _facebook.accessToken, @"access_token",
                                       nil];
        [_facebook requestWithGraphPath:@"329756493773381/og.likes" andParams:params andHttpMethod:@"POST" andDelegate:self];

我收到此错误响应:

(facebookErrDomain error 10000.)" UserInfo=0x20090590 {error={
    code = 200;
    message = "(#200) Requires extended permission: publish_actions";
    type = OAuthException;
}}

登录该应用程序时,Facebook 要求我允许查看我的生日,并告诉我它将代表我发布,但它似乎没有获得 publish_actions 权限。

有什么我需要做的吗?

我看到 Temple Run 有一个 Facebook Like 按钮,按下它会提供奖励金币。这是我希望达到的。

编辑 - - - -

我已将权限更改为 @"publish_actions", @"user_birthday" 现在身份验证对话框说

“这个应用程序可能会代表您发布,包括您喜欢的对象等等”

这似乎是 publish_actions 权限,但是我仍然收到错误

message = "(#200) 需要扩展权限:publish_actions";

我改变了这一行:

[_facebook requestWithGraphPath:@"329756493773381/og.likes" andParams:params andHttpMethod:@"POST" andDelegate:selrf];

对此:

[_facebook requestWithGraphPath:@"329756493773381/og.likes" andDelegate:self];

我现在确实收到了回复,尽管它没有发布“喜欢”

这是结果响应:

{
    data =     (
    );
    paging =     {
        next = "https://graph.facebook.com/329756493773381/og.likes?sdk=ios&sdk_version=2&access_token=BAAGeAp3ZBGwoBAPICjlgB5zK0YECyP8yElf8hJoMrx8Qs4vjeZAK5PlXFAVbGM1JyXHE0wZBvU0aBeCzCUTZBejQgoJ44CAIQsrG64TfrHdxjMqWD&format=json&offset=25&limit=25";
    };
}

知道接下来要尝试什么吗?

编辑 2 --------------- 我在这方面取得了进展。我已经像这样将用户 ID 添加到图形请求中

NSString *graphPath = [NSString stringWithFormat:@"%@/og.likes",facebookID];

并使用了这些参数

NSMutableDictionary* params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                                       @"AAAGeAp3ZBGwoBABvKjsPZAoQQNG9cDPJI2v2TI8acyyPSNtm9ZBkfydHqVZAjSKWSbLuvFwxyxSrCts7kFZCnh7Y6f5PFNlWb6smF8XF33wlRZBgfLyhT1", @"access_token",
                                       @"http://samples.ogp.me/329756493773381", @"object",
                                       nil];

现在我的时间轴上出现了类似的内容:-) 我使用的是 Facebook 登录提供的访问令牌,但似乎图形对象提供的访问令牌不同。

现在,我看到的类似的模式是这样的:

Darren 喜欢 MyAPP 上的对象

是否有可能将其作为

Darren 喜欢 MyAPP 并链接到应用程序 Facebook 页面?

谢谢

4

2 回答 2

5

检查您是否已完成以下步骤:

https://developers.facebook.com/docs/opengraph/tutorial/

“注意:此权限的用户提示将显示在增强身份验证对话框的第一个屏幕中,并且不能作为身份验证流程的一部分撤销。” - 关联

如果你还没有,试试这个:

Auth Dialog -> 配置 Facebook 如何将用户引用到您的应用程序 -> 添加 publish_actions 权限。

https://developers.facebook.com/docs/opengraph/authentication/

“要启用新的身份验证对话框,请转到应用仪表板,然后在应用的高级部分启用增强的身份验证对话框设置。” -关联

希望这可以帮助!

于 2012-07-06T10:29:36.090 回答
0

这似乎与我在这个 SO 问题上遇到的问题相同: Facebook iOS SDK 3.0, implement like action on a url?

但是,如果您想在应用程序中为您的 facebook 页面点赞,则在 Objective C 中无法做到这一点。只有使用您可以在此处生成的 javascript Like 按钮: https ://developers.facebook.com/docs/reference/插件/喜欢/

Temple Run 的做法是在 web 视图中显示 Like 按钮,因此他们的 Like 按钮实际上在他们的服务器上,这可能是一个丑陋的 hack,但可以用于喜欢一个页面。

于 2012-09-07T09:03:03.120 回答