无法获得Facebook发布

我已经花了数小时的时间,并且无法完成工作。 基本上我只想在我的应用程序中有一个按钮,它会在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页面?

谢谢


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

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

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

如果你还没有试试这个:

验证对话框 - >配置Facebook如何将用户引导至您的应用 - >添加publish_actions权限。

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

“要启用新的身份验证对话框,请转至应用程序仪表板,然后在应用程序的高级部分中启用增强的身份验证对话框设置。” -链接

希望这可以帮助!


这似乎是我在这个SO问题上遇到的同样的问题:Facebook的iOS SDK 3.0,实现像一个网址上的动作?

但是如果你想在应用中喜欢你的Facebook页面,在Objective C中没有办法做到这一点。只有在你可以在这里生成的JavaScript Like按钮:https://developers.facebook.com/docs/reference/插件/像/

Temple Run的做法是在网页视图中显示Like按钮,所以他们的按钮实际上在他们的服务器上,这可能是一个丑陋的黑客攻击,但会喜欢一个页面。

链接地址: http://www.djcxy.com/p/83133.html

上一篇: Can't get the Facebook publish

下一篇: Facebook SDK: post to wall only visible for me for testing purposes?