iPhone 上的 Facebook 登录错误
Facebook login error on iPhone
当我尝试使用 iphone 应用程序访问 facebook 时,出现以下错误。
Facebook 服务器无法满足此访问请求:代理应用无法在未安装的情况下请求发布权限。
我该如何解决这个问题?
这是我的代码。
(IBAction)btnLogin_Action:(id)sender
{
if (FBSession.activeSession.state == FBSessionStateOpen
|| FBSession.activeSession.state == FBSessionStateOpenTokenExtended) {
[FBSession.activeSession closeAndClearTokenInformation];
}
else
{
[FBSession openActiveSessionWithReadPermissions:@[@"public_profile",@"user_birthday", @"email"]
allowLoginUI:YES
completionHandler:
^(FBSession *session, FBSessionState state, NSError *error) {
[self sessionStateChanged:session state:state error:error];
}];
}
}
(void)sessionStateChanged:(FBSession *)session state:(FBSessionState) state error:(NSError *)error
{
if (!error && state == FBSessionStateOpen){
[self userLoggedIn];
return;
}
if (error)
{
NSString *alertText, *alertTitle;
if ([FBErrorUtility shouldNotifyUserForError:error] == YES)
{
alertTitle = @"Something went wrong";
alertText = [FBErrorUtility userMessageForError:error];
[self showMessage:alertText withTitle:alertTitle];
}
else
{
if ([FBErrorUtility errorCategoryForError:error] == FBErrorCategoryUserCancelled)
{
}
else if ([FBErrorUtility errorCategoryForError:error] == FBErrorCategoryAuthenticationReopenSession)
{
alertTitle = @"Session Error";
alertText = @"Your current session is no longer valid. Please log in again.";
[self showMessage:alertText withTitle:alertTitle];
}
else
{
NSDictionary *errorInformation = [[[error.userInfo objectForKey:@"com.facebook.sdk:ParsedJSONResponseKey"] objectForKey:@"body"] objectForKey:@"error"];
alertTitle = @"Something went wrong";
alertText = [NSString stringWithFormat:@"Please retry. \n\n If the problem persists contact us and mention this error code: %@", [errorInformation objectForKey:@"message"]];
[self showMessage:alertText withTitle:alertTitle];
}
}
[FBSession.activeSession closeAndClearTokenInformation];
}
}
根据我的经验,要解决此问题,请完成 Facebook 的 iOS SDK 设置并确保您拥有他们告诉您的所有信息,包括捆绑包标识符、Facebook 应用程序 ID 等。还要确保您的应用程序捆绑了 Facebook SDK 框架和依赖框架。
如果您正确执行此操作,您的应用应该可以运行。
祝你好运。
当我尝试使用 iphone 应用程序访问 facebook 时,出现以下错误。
Facebook 服务器无法满足此访问请求:代理应用无法在未安装的情况下请求发布权限。
我该如何解决这个问题?
这是我的代码。
(IBAction)btnLogin_Action:(id)sender
{
if (FBSession.activeSession.state == FBSessionStateOpen
|| FBSession.activeSession.state == FBSessionStateOpenTokenExtended) {
[FBSession.activeSession closeAndClearTokenInformation];
}
else
{
[FBSession openActiveSessionWithReadPermissions:@[@"public_profile",@"user_birthday", @"email"]
allowLoginUI:YES
completionHandler:
^(FBSession *session, FBSessionState state, NSError *error) {
[self sessionStateChanged:session state:state error:error];
}];
}
}
(void)sessionStateChanged:(FBSession *)session state:(FBSessionState) state error:(NSError *)error
{
if (!error && state == FBSessionStateOpen){
[self userLoggedIn];
return;
}
if (error)
{
NSString *alertText, *alertTitle;
if ([FBErrorUtility shouldNotifyUserForError:error] == YES)
{
alertTitle = @"Something went wrong";
alertText = [FBErrorUtility userMessageForError:error];
[self showMessage:alertText withTitle:alertTitle];
}
else
{
if ([FBErrorUtility errorCategoryForError:error] == FBErrorCategoryUserCancelled)
{
}
else if ([FBErrorUtility errorCategoryForError:error] == FBErrorCategoryAuthenticationReopenSession)
{
alertTitle = @"Session Error";
alertText = @"Your current session is no longer valid. Please log in again.";
[self showMessage:alertText withTitle:alertTitle];
}
else
{
NSDictionary *errorInformation = [[[error.userInfo objectForKey:@"com.facebook.sdk:ParsedJSONResponseKey"] objectForKey:@"body"] objectForKey:@"error"];
alertTitle = @"Something went wrong";
alertText = [NSString stringWithFormat:@"Please retry. \n\n If the problem persists contact us and mention this error code: %@", [errorInformation objectForKey:@"message"]];
[self showMessage:alertText withTitle:alertTitle];
}
}
[FBSession.activeSession closeAndClearTokenInformation];
}
}
根据我的经验,要解决此问题,请完成 Facebook 的 iOS SDK 设置并确保您拥有他们告诉您的所有信息,包括捆绑包标识符、Facebook 应用程序 ID 等。还要确保您的应用程序捆绑了 Facebook SDK 框架和依赖框架。
如果您正确执行此操作,您的应用应该可以运行。
祝你好运。