我整合了facebook sdk在facebook上发布的东西。它只用于单个facebook-id,用于将facebook集成到我的应用程序中,而不是为其他人工作。 这是我的代码
-(IBAction)postOnFacebook:(id)sender {
NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"Sharing Tutorial", @"name",@"Build great social apps and get more installs.", @"caption", @"Allow your users to share stories on Facebook from your app using the iOS SDK.", @"description",@"https://developers.facebook.com/docs/ios/share/", @"link",@"http://i.imgur.com/g3Qc1HN.png", @"picture",nil];
// Show the feed dialog
[FBWebDialogs presentFeedDialogModallyWithSession:nil
parameters:params
handler:^(FBWebDialogResult result, NSURL *resultURL, NSError *error) {
if (error) {
// An error occurred, we need to handle the error
// See: https://developers.facebook.com/docs/ios/errors
NSLog(@"Error publishing story: %@", error.description);
} else {
if (result == FBWebDialogResultDialogNotCompleted) {
// User cancelled.
NSLog(@"User cancelled.");
} else {
// Handle the publish feed callback
NSDictionary *urlParams = [self parseURLParams:[resultURL query]];
if (![urlParams valueForKey:@"post_id"]) {
// User cancelled.
NSLog(@"User cancelled.");
} else {
// User clicked the Share button
NSString *result = [NSString stringWithFormat: @"Posted story, id: %@", [urlParams valueForKey:@"post_id"]];
NSLog(@"result %@", result);
}
}
}
}];
}
// A function for parsing URL parameters returned by the Feed Dialog.
- (NSDictionary*)parseURLParams:(NSString *)query {
NSArray *pairs = [query componentsSeparatedByString:@"&"];
NSMutableDictionary *params = [[NSMutableDictionary alloc] init];
for (NSString *pair in pairs) {
NSArray *kv = [pair componentsSeparatedByString:@"="];
NSString *val =
[kv[1] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
params[kv[0]] = val;
}
return params;
}
这个方法
当我使用另一个id进行登录时出现错误
答案 0 :(得分:2)
您正在使用publish_action权限,只有在获得Facebook批准后,才能使所有用户都可以使用该权限。
目前,您可能已经在自己的帐户中创建了Facebook应用,并且凭借该帐户ID,您就可以发布到Facebook。这是因为facebook为在App Dashboard中添加为开发人员/测试人员的用户提供了所有权限。
您可以按照以下步骤将人员添加到您的应用中作为测试人员/开发人员
您需要成为管理员才能在您的网页上为某人提供角色。如果这个人是你的Facebook好友:
Go to your Page and tap More.
Tap Edit Settings > Page Roles.
Tap Add Person to Page. You may need to enter your password to continue.
Begin typing a friend's name and tap their name from the list that appears.
Tap to choose a role > Add.
如果此人不是您的Facebook好友,您可以从计算机登录Facebook并通过输入他们的电子邮件地址添加它们。
根据他们的设置,当您授予他们角色时,此人可能会收到通知或电子邮件。
添加的这些用户将拥有您要求的所有权限。
如果您希望每个人都可以使用这些权限,那么您的Facebook应用应该获得批准,因此您必须将您的应用提交到Facebook进行审核。可以从以下链接找到facebook app submision的指南 https://developers.facebook.com/docs/apps/review
希望这有助于你
答案 1 :(得分:1)
我不确定我是否理解你的问题。 但是,对于我所看到的。如果您在Facebook上创建了应用程序(与您的iOS应用程序集成),则必须使用仅在Facebook上显示的Facebook应用程序ID。
或者,如果此错误是因为您尝试使用其他Facebook帐户登录。发生这种情况可能是因为您还没有发布您的应用程序(Facebook应用程序)。所以每个人都无法使用它,但它可以,因为你可能不想让它现在可用。因此,您只需要在Facebook应用页面的Roles左侧菜单中添加测试用户(您尝试登录的帐户)或以管理员身份添加。