我已经整合了facebook sdk最新版本,我使用我的帐户ABC在开发人员上创建应用程序....并使用Facebook App id。如果我使用我的ABC帐户登录我的Ios应用程序,并在我的墙上成功登录facebook.it帖子,一切都很好。
但是,如果我使用任何其他帐户登录Facebook。我成功了,但是当我发布时我得到了错误。
**我得到了这个错误**
错误Domain = com.facebook.sdk Code = 5"操作无法完成。 (com.facebook.sdk错误5。)" UserInfo = 0x22689930 {com.facebook.sdk:HTTPStatusCode = 403,com.facebook.sdk:ParsedJSONResponseKey = { body = { error = { 代码= 200; message ="(#200)用户未授权应用程序执行此操作"; type = OAuthException; }; }; code = 403; },com.facebook.sdk:ErrorSessionKey =,expirationDate:2014-08-15 08:56:01 +0000,refreshDate:2014-06-16 10:10:43 +0000,attemptsRefreshDate:0001-12-30 00: 00:00 +0000,权限:( 状态, 允许 )>}
发布
- (void)post:(NSString *)postString {
if (FBSession.activeSession.state == FBSessionStateOpen|| FBSession.activeSession.state == FBSessionStateOpenTokenExtended)
{
NSArray *permissionsNeeded = @[@"publish_stream"];
[FBRequestConnection startWithGraphPath:@"/me/permissions"
completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
if (!error){
NSDictionary *currentPermissions= [(NSArray *)[result data] objectAtIndex:0];
NSMutableArray *requestPermissions = [[NSMutableArray alloc] initWithArray:@[]];
for (NSString *permission in permissionsNeeded){
if (![currentPermissions objectForKey:permission]){
[requestPermissions addObject:permission];
}
}
if ([requestPermissions count] < 1){
[FBSession.activeSession requestNewPublishPermissions:requestPermissions
defaultAudience:FBSessionDefaultAudienceFriends
completionHandler:^(FBSession *session, NSError *error) {
if (!error) {
[self makeRequestToUpdateStatus:postString];
} else {
NSLog(@"%@",[error description]);
}
}];
} else {
[self makeRequestToUpdateStatus:postString];
}
} else {
NSLog(@"%@",[error description]);
}
}];
}
else
{
}
}
登录
- (无效)loginToFacebook { NSLog(@&#34; facebook登录名为&#34;); if(!(FBSession.activeSession.state == FBSessionStateOpen || FBSession.activeSession.state == FBSessionStateOpenTokenExtended)){ NSArray * permissions = [[NSArray alloc] initWithObjects: @&#34; publish_stream&#34 ;, 零];
[FBSession openActiveSessionWithPublishPermissions:permissions defaultAudience:FBSessionDefaultAudienceEveryone allowLoginUI:YES completionHandler:^(FBSession *session, FBSessionState status, NSError *error) {
dispatch_async( dispatch_get_main_queue(), ^{
[self sessionStateChanged:session
state:status
error:error];
});
}];
}
否则 { }
}
答案 0 :(得分:0)
嗯,该消息表明您没有请求用户的正确权限。
也许您之前要求更多,因此它仍适用于您的ABC帐户,因为您当时已经“授权”了该帐户的应用程序。所以Facebook仍然认为ABC授权该应用程序发布在墙上。
修改:添加以下说明以回应您的评论:
您可以找到一个包含您可以要求here权限的列表。请注意,对于API v 2.0,如果您要求多个基本权限(并且在墙上发布不是这样的基本权限),您需要让Facebook“批准”您的应用程序(除非您在2014年4月之前启动了应用程序,在这种情况下,您可以继续使用v1.0,直到2015年4月才需要批准。)
取消授权您自己的应用程序可以通过以该用户身份登录,转到设置(右上角菜单),选择左侧的应用程序并单击应用程序旁边的“x”来完成。
答案 1 :(得分:0)
<强>步骤强>
https://developers.facebook.com/apps
Select Your App then follow steps.
in **Settings** -> Basic
1. add contact Email
2. Bundle id
3. Url Scheme Suffix (like Your app name)
Then Save
In **Status & Review**
1.Do you want to make this app and all its live features available to the general public?
Set Yes
May be Useful