Facebook登录在iPhone模拟器上工作,但不在iphone设备上
在我的应用程序中,我想从Facebook上拍照。 所以我用facebook ios sdk。 我可以从下面的代码授权:
if (appDelegate.session.isOpen) {
//[appDelegate.session closeAndClearTokenInformation];
[self retrieveAlbums];
} else {
if (appDelegate.session.state != FBSessionStateCreated) {
// Create a new, logged out session.
appDelegate.session = [[FBSession alloc] init];
}
// if the session isn't open, let's open it now and present the login UX to the user
[appDelegate.session openWithCompletionHandler:^(FBSession *session,
FBSessionState status,
NSError *error) {
// and here we make sure to update our UX according to the new session state
//NSLog(@"%@",session.accessTokenData.accessToken);
[self retrieveAlbums];
}];
它在iPhone模拟器上正常工作。 但我无法登录我的iPhone 4设备。 当我尝试登录时会打开一个Safari,然后显示消息更新。 然后它将会在未经授权的情况下重定向 访问令牌检索为零。 所以我无法检索图像。
请帮帮我。
编辑
感谢大家。最后我解决了我的问题。 这是因为我在Facebook开发人员帐户设置中启用了沙盒模式。 当我禁用沙箱模式时,它正常工作。
尝试清除Safari浏览器的Cookie和缓存,然后转到设置。 此外,如果您不希望应用重定向到Safari,只需在您的info.plist中提供类似“fb-AppId-”的URL Scheme,它将打开登录弹出窗口
我遇到了类似的问题,并通过在本网站中撰写了几个解决方案来解决此问题。 首先我摆脱了我的信息plist的网址方案。 所以现在我的应用程序在我的注册页面里打开了facebook登录对话框。 这是一件好事,因为它不会来回Safari浏览器的Facebook身份验证,你留在应用程序内。 我做的第二件事是,在我的Facebook登录代码中加入错误处理机制。 因此,如果用facebook登录失败,它会使用另一种登录策略。
这是我的代码。
- (void)loginView:(FBLoginView *)loginView handleError:(NSError *)error {
NSArray *permissions = [[NSArray alloc] initWithObjects:
@"public_profile", @"user_friends", @"email",
nil];
FBSession *session = [[FBSession alloc] initWithPermissions:permissions];
[FBSession setActiveSession:session];
[self openSessionWithAllowLoginUI:YES completionHandler:^(FBSession *session, FBSessionState status, NSError *error) {
if (!error && status == FBSessionStateOpen) {
NSString *token = session.accessTokenData.accessToken;
NSLog(@"Logged in! - Token -- %@", token);
} else {
NSLog(@"Something wrong happened");//you can check the error code here
}
}];
}
链接地址: http://www.djcxy.com/p/65199.html
上一篇: facebook login works on iphone simulator but not on iphone device