FBConnect:“用户尚未授权应用程序执行此操作”

2023-12-12

我正在开发一个iPhone应用程序,其中包括facebook墙发布。登录后,我通过以下代码发布到用户的墙:

NSString *appIcon = [NSString stringWithString:@"http://a2.twimg.com/profile_images/416166235/apple-black_normal.png"];
NSString *appSiteUrl = [NSString stringWithString:@"http://www.apple.com"];
NSString *attachment= [NSString stringWithFormat:@"{\"caption\":\"%@ Likes in the iPhone App\",\"description\":\"\",\"media\":[{\"type\":\"image\",\"src\":\"%@\",\"href\":\"%@\"}]}",_facebookName,appIcon,appSiteUrl];

// [attachment stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

NSArray *obj = [NSArray arrayWithObjects:attachment,nil];
NSArray *keys = [NSArray arrayWithObjects:@"attachment",nil];
NSDictionary *params = [NSDictionary dictionaryWithObjects:obj forKeys:keys];

NSLog(@"atachment : %@",[params description]);

[[FBRequest requestWithDelegate:self] call:@"facebook.stream.publish" params:params];

这会导致错误,指出“用户尚未授权应用程序执行此操作”。

在用户的Facebook个人资料中,该应用程序仅具有访问用户基本信息的权限。所以我需要从用户那里获取“stream_publish”。

那么如何授予扩展权限对话框(“stream_publish”的权限)?

任何帮助,将不胜感激。


我自己找到了问题的解决方案。

实际上,问题的原因是应用程序没有“发布到墙”的权限。 (发布流)。因此 FB 拒绝并出现以下错误。

“用户尚未授权此应用程序执行此操作”。

所以当用户登录时,要求用户授予publish_stream的权限,

- (void)session:(FBSession*)session didLogin:(FBUID)uid {

    FBPermissionDialog *permissions = [[FBPermissionDialog alloc]initWithSession:_session];
    permissions.permission = [NSString stringWithString: @"publish_stream"]; 
    [permissions show];

}

`
一旦用户允许“发布到墙上”,此对话框将不会再次出现。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

FBConnect:“用户尚未授权应用程序执行此操作” 的相关文章

随机推荐