无法获得iOS上的Facebook publish_action权限

Dar*_*ren 6 xcode facebook facebook-graph-api ios facebook-ios-sdk

我花了好几个小时才开始工作.基本上我只想在我的应用程序中使用一个按钮,它将在Facebook上"赞".我在开发Facebook上创建了应用程序,并有一个关联的应用页面.在我的代码中,我请求这些权限:

_permissions =  [NSArray arrayWithObjects:@"publish_stream", @"publish_actions", @"user_birthday", nil];
Run Code Online (Sandbox Code Playgroud)

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

NSMutableDictionary* params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                                       _facebook.accessToken, @"access_token",
                                       nil];
        [_facebook requestWithGraphPath:@"329756493773381/og.likes" andParams:params andHttpMethod:@"POST" andDelegate:self];
Run Code Online (Sandbox Code Playgroud)

我收到此错误响应:

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

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

有什么我想念的东西需要做吗?

我看到Temple Run有一个Facebook赞按钮,并提供奖励硬币按下它.这就是我希望实现的目标.

编辑-------

我已将我的权限更改为@"publish_actions",@"user_birthday",现在auth对话说

"此应用可能代表您发布,包括您喜欢的对象以及更多内容"

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

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

我改变了这一行:

[_facebook requestWithGraphPath:@"329756493773381/og.likes" andParams:params andHttpMethod:@"POST" andDelegate:selrf];
Run Code Online (Sandbox Code Playgroud)

对此:

[_facebook requestWithGraphPath:@"329756493773381/og.likes" andDelegate:self];
Run Code Online (Sandbox Code Playgroud)

我现在回复了,虽然它没有发布'喜欢'

这是结果响应:

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

知道下一步该尝试什么吗?

编辑2 ---------------我正在取得进展.我已将用户ID添加到图形请求中,如下所示

NSString *graphPath = [NSString stringWithFormat:@"%@/og.likes",facebookID];
Run Code Online (Sandbox Code Playgroud)

并使用这些参数

NSMutableDictionary* params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                                       @"AAAGeAp3ZBGwoBABvKjsPZAoQQNG9cDPJI2v2TI8acyyPSNtm9ZBkfydHqVZAjSKWSbLuvFwxyxSrCts7kFZCnh7Y6f5PFNlWb6smF8XF33wlRZBgfLyhT1", @"access_token",
                                       @"http://samples.ogp.me/329756493773381", @"object",
                                       nil];
Run Code Online (Sandbox Code Playgroud)

现在我得到了一个出现在我的时间轴上:-)我正在使用Facebook登录提供的访问令牌,但似乎图形对象提供的那个是不同的.

现在,我所看到的有这样的模式:

Darren喜欢MyAPP上的对象

甚至可以将它作为

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

谢谢

Ale*_*way 5

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

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

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

如果你还没有尝试这个:

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

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

"要启用新的Auth对话框,请转到App Dashboard,并在应用程序的Advanced部分中启用Enhanced Auth Dialog设置." -链接

希望这可以帮助!