我正在开发一个应用程序,需要将订阅源发布到用户的Facebook页面。此功能是使用Social框架实现的,并未集成facebook SDK。检索设备设置中关联的帐户,并将一些数据(链接或文本)发布到用户Feed。
当我为此目的在facebook中创建一个新应用程序时,我看到了一个新的审核流程。我通过上传模拟器构建,截图和所有需要的信息提交了评论。今天我收到来自Facebook的警报,我的应用程序因某些原因被拒绝了。
'您的应用未展示真实的用户环境或似乎是测试提交。如果您的应用正在开发中,请仅在您的应用详细信息代表完整的真实用户体验时重新提交。'
我的应用程序正在开发中,并没有完全正常运行。但我只在初次登录时需要facebook支持。我不知道接下来应该做些什么。请帮忙。有没有办法联系Facebook团队以获得更快的响应?
答案 0 :(得分:1)
使用社交框架时,您不需要使用Facebook App ID发布到fb,因此您不需要在Facebook中创建应用程序。你只需要这样做:
- (IBAction)socialSheet:(id)sender {
// create Facebook controller
SLComposeViewController *socialController = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];
// add initial text
[socialController setInitialText:@"Blah blah.."];
// add an image
[socialController addImage:[UIImage imageNamed:@"my_picture.jpg"]];
// maybe even add a URL
[socialController addURL:[NSURL URLWithString:@"http://my.cool.link.com"]];
// present controller
[self presentViewController:socialController animated:YES completion:nil];
}
为避免错误,您可以测试服务是否可用,如下所示:
if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook]) {
// user has setup their Facebook account in Settings, show Facebook option
}
- 更新 -
如果您需要按照以下评论中的要求发布到fb而不提交表单,那么您可以使用此处记录的SLRequest
:
https://developer.apple.com/library/ios/documentation/Social/Reference/SLRequest_Class/Reference/Reference.html#//apple_ref/doc/uid/TP40012234
示例:
-(IBAction)postMessage:(id)sender
{
// fb endpoint URL
NSURL *postURL = [NSURL URLWithString:@"https://graph.facebook.com/me/feed"];
NSDictionary *postDict = @{
@"link" : @"http://some.cool.link.com/",
@"message" : @"The message I'm posting..",
@"picture" : @"http://url.to/my/picture.png",
... other key-value pairs that you may need, depending on your circumstances
};
SLRequest *postToMyWall = [SLRequest requestForServiceType:SLServiceTypeFacebook requestMethod:SLRequestMethodPOST URL:postURL parameters:postDict];
FacebookAccountManager* sharedManager = [FacebookAccountManager sharedAccount];
[postToMyWall setAccount:sharedManager.facebookAccount];
[postToMyWall performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error) {
// do something with the response or handle error
}];
}