繁体   English   中英

IOS中的Facebook登录可以在模拟器上运行,但不能在安装了本机应用程序的设备上运行

[英]Facebook login in IOS works on emulator but not on device with native app installed

面临以下问题:需要在IOS 7中执行Facebook登录。该操作在模拟器上正常进行,但是在安装了本机应用程序的设备上运行时,会话不授予执行登录的权限。

使用代码创建会话: 在此处输入图片说明

checarLogin方法的工作方式如下:

在此处输入图片说明

我已经用谷歌搜索找到它,并发现控制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

            }
        }];

我遇到了类似的问题,这对我有用:

https://stackoverflow.com/a/12069251/2407717

一位同事更改了我们的某些项目设置,包括Bundle Identifier ,因此它不再与Facebook上的iOS Bundle ID相匹配。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM