我已经通过iOS APP FBSDK 4.0集成。我用过
FBSDKLoginManager *login = [[FBSDKLoginManager alloc]init];
[login logInWithReadPermissions:@[@"public_profile",@"email",@"basic_info"] fromViewController:nil handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {
if (error)
{
[[AlertView sharedAlert] showAlertWithTitle:kAlertError Message:@"Login Error.Try after sometme" CancelButton:kAlertOKButtonTitle OtherButtons:nil];
}
else if (result.isCancelled)
{
NSLog(@"Login Cancelled");
}
else
{
NSLog(@"%@",result.grantedPermissions);
[self handleFBLoginResult];
}
}];
使用FB登录,此步骤会生成一个没有发布权限的访问令牌。
然后在应用程序的其他部分,当用户点击发布到FB操作时,我在下面调用方法
FBSDKLoginManager *login = [[FBSDKLoginManager alloc]init];
[login logInWithPublishPermissions:@[@"publish_actions"] fromViewController:topController handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {
if ([[result declinedPermissions] containsObject:@"publish_actions"])
{
[[AlertView sharedAlert] showAlertWithTitle:kAlertWarning Message:@"Publish Permission Denied.Please check your FB profile settings" CancelButton:kAlertOKButtonTitle OtherButtons:nil];
}
请参阅随附的屏幕截图。
拒绝权限设置为nil 授予的权限设置为nil 用户取消操作设置为YES,而我没有取消任何内容
看起来我的权限未设置,我无法发布任何Feed
[[[FBSDKGraphRequest alloc]initWithGraphPath:@"/me/feed" parameters:postDict HTTPMethod:@"POST"] startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
NSLog(@"%@",[[FBSDKAccessToken currentAccessToken] tokenString]);
if(error == nil)
{
NSLog(@"Checkin Posted");
}
else
{
//NSString *errMessage = [[[[[error userInfo] objectForKey:@"com.facebook.sdk:ParsedJSONResponseKey"] objectForKey:@"body"] objectForKey:@"error"] objectForKey:@"message"];
NSString *errMessage = [error localizedDescription];
[[AlertView sharedAlert] showAlertWithTitle:kAlertError Message:errMessage CancelButton:kAlertOKButtonTitle OtherButtons:nil];
}
}];
上面的代码无法在FB中发布Feed并抛出错误消息
Facebook错误:(#200)用户未授权该应用程序执行此操作。
我经历了一些提到的解决方案,但它并没有帮助我。
任何建议都会有所帮助。