IOS中的Facebook登录可以在emulator上工作,但不能在安装了本机应用程序的设备上工作
面临以下问题:需要在IOS 7中执行Facebook登录。在emulator上运行正常,但在安装了本机应用程序的设备上运行时,会话不允许执行登录 使用代码创建会话: checarLogin方法的工作原理如下: 我在谷歌上找到了它,发现控制Facebook应用程序权限的设备设置在以下两种情况下的工作方式不同: Emulator授予无问题的权限: 下图也取自emulator,但只是为了说明设备的工作方式 默认情况下工作:IOS中的Facebook登录可以在emulator上工作,但不能在安装了本机应用程序的设备上工作,ios,iphone,facebook,facebook-sdk-3.0,Ios,Iphone,Facebook,Facebook Sdk 3.0,面临以下问题:需要在IOS 7中执行Facebook登录。在emulator上运行正常,但在安装了本机应用程序的设备上运行时,会话不允许执行登录 使用代码创建会话: checarLogin方法的工作原理如下: 我在谷歌上找到了它,发现控制Facebook应用程序权限的设备设置在以下两种情况下的工作方式不同: Emulator授予无问题的权限: 下图也取自emulator,但只是为了说明设备的工作方式 默认情况下工作: 所以问题是:在安装了本机Facebook应用程序的真实设备上运行时,有
所以问题是:在安装了本机Facebook应用程序的真实设备上运行时,有其他方法来处理登录,并使其接受权限,而无需更改iphone设置?这是我在应用程序中使用的,您必须允许登录UI
- (BOOL)openSessionWithAllowLoginUI:(BOOL)allowLoginUI completionHandler:(FBSessionStateHandler)handler {
// We pass this permissions array into our request.
// I only request email, but there are many more options.
//
NSArray *permissions = @[@"email", @"basic_info"];
return [FBSession
openActiveSessionWithReadPermissions:permissions
allowLoginUI:allowLoginUI
completionHandler:^(FBSession *session,
FBSessionState state,
NSError *error) {
if (handler)
handler(session, state, error);
}];
}
这就是你使用它的方式
[self openSessionWithAllowLoginUI:YES completionHandler:^(FBSession *session, FBSessionState status, NSError *error) {
if (!error && status == FBSessionStateOpen) {
NSString *token = session.accessTokenData.accessToken;
// You're logged in!
} else {
// Something wrong happened
}
}];
我也遇到了类似的问题,这对我来说很有效:
一位同事更改了我们的一些项目设置,包括包标识符,因此它与Facebook上的iOS包ID不再匹配。谢谢!就是这样!