facebook登录请求登录审查权限
Posted
技术标签:
【中文标题】facebook登录请求登录审查权限【英文标题】:facebook login ask for Login Review Permission 【发布时间】:2015-06-09 07:28:03 【问题描述】:我正在使用 facebook sdk 在 facebook 墙上分享状态。
但我在授予权限时收到消息。
“提交登录审核以下某些权限尚未被 facebook 在 ios 中使用提交审核或了解更多”
这是我的代码。
- (IBAction)PostStatus:(id)sender
[self postWithText:self.txtField.text ImageName:nil URL:@"http://developers.facebook.com/ios" Caption:nil Name:nil andDescription:nil];
-(void) postWithText: (NSString*) message
ImageName: (NSString*) image
URL: (NSString*) url
Caption: (NSString*) caption
Name: (NSString*) name
andDescription: (NSString*) description
NSMutableDictionary* params = [[NSMutableDictionary alloc] initWithObjectsAndKeys:
url, @"link",
name, @"name",
caption, @"caption",
description, @"description",
message, @"message",
UIImagePNGRepresentation([UIImage imageNamed: image]), @"picture",
nil];
if ([FBSession.activeSession.permissions indexOfObject:@"publish_actions"] == NSNotFound)
// No permissions found in session, ask for it
[FBSession.activeSession requestNewPublishPermissions: [NSArray arrayWithObject:@"publish_actions"]
defaultAudience: FBSessionDefaultAudienceFriends
completionHandler: ^(FBSession *session, NSError *error)
if (!error)
// If permissions granted and not already posting then publish the story
[self postToWall: params];
];
else
// If permissions present and not already posting then publish the story
[self postToWall: params];
-(void) postToWall: (NSMutableDictionary*) params
// m_postingInProgress = YES; //for not allowing multiple hits
[FBRequestConnection startWithGraphpath:@"me/feed"
parameters:params
HTTPMethod:@"POST"
completionHandler:^(FBRequestConnection *connection,
id result,
NSError *error)
if (error)
//showing an alert for failure
UIAlertView *alertView = [[UIAlertView alloc]
initWithTitle:@"Post Failed"
message:error.localizedDescription
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alertView show];
];
【问题讨论】:
可能重复.. ***.com/q/23722676/3400991 【参考方案1】:最好阅读 facebook 开发者文档。 Facebook 明确提及以下内容:
" 如果您的应用要求的不仅仅是 public_profile、email 和 user_friends,则需要经过 Facebook 审核,然后您的应用才能被应用开发者以外的人使用。 审核您的应用的时间通常约为 7 个工作日。如下所述,一些特别敏感的权限可能需要长达 14 个工作日。 "
所以在您的问题中,最好只分享文本并检查它是否有效。
【讨论】:
【参考方案2】:当您将应用注册到 facebook 时。 Facebook 只提供三个权限,这些权限默认是批准的
email 提供对个人主要电子邮件地址的访问。默认情况下已批准此权限。
public_profile 提供对个人基本信息的访问,包括名字、姓氏、头像、性别和年龄范围。默认情况下已批准此权限。
user_friends 提供对也使用您的应用程序的人的朋友列表的访问权限。默认情况下已批准此权限。
如果您想使用除它们之外的更多功能,则需要将您的应用提交到 facebook 以使用其他功能
如果想要分享照片,那么您必须提交您的应用以获得 publish_action 权限 Facebook 检查您如何使用分享或在您的应用中发布,您还需要上传屏幕截图并提交显示您正在使用 Facebook 分享.
但您可以仅使用您在 developer.facebook.com 上创建应用程序时使用的电子邮件在 Facebook 上分享或发帖 或者您也可以创建测试用户进行共享。 但是,如果您希望每个人都可以通过 facebook 分享或发布,您需要获得 facebook 的许可。
【讨论】:
在提交审核之前,您将如何在应用程序上“测试”这些权限结果?是否没有允许某些开发者帐户权限的测试模式?【参考方案3】:这是我在 Facebook 上分享帖子的代码。
if([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook])
SLComposeViewController *controller = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];
[controller setInitialText:@"your message"];
[controller addImage:imgSelect.image];//set your image here
NSLog(@"controller");
[self presentViewController:controller animated:YES completion:Nil];
else
UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"No Facebook Account" message:@"There are no Facebook accounts configured. You can add or create a Facebook account in Settings." delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"Settings", nil];
[alert show];
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
if (buttonIndex == 1)
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];
【讨论】:
以上是关于facebook登录请求登录审查权限的主要内容,如果未能解决你的问题,请参考以下文章
Facebook 请求配置文件 Graph API 无法在 iOS 7 本机 facebook 上未登录
Cordova / Phonegap 应用程序 - 更改 Facebook 帐户
我必须在 4 月底之前使用此登录代码发送审查我的 Facebook 应用程序吗?