加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

objective-c – Native iOS Facebook SSO将不会返回到应用程序

发布时间:2020-12-14 20:05:33 所属栏目:百科 来源:网络整理
导读:好的,这似乎是一个重复的,但我已经解决了所有的问题,围绕这个问题,我仍然似乎无法让这个工作为我的应用程序. 我已经在Facebook开发者网站上遵循了iOS教程,我已经完成了以下工作: 创建一个Facebook应用程序以获取Facebook应用程序ID. 我把这个应用程序ID分配
好的,这似乎是一个重复的,但我已经解决了所有的问题,围绕这个问题,我仍然似乎无法让这个工作为我的应用程序.

我已经在Facebook开发者网站上遵循了iOS教程,我已经完成了以下工作:

>创建一个Facebook应用程序以获取Facebook应用程序ID.
>我把这个应用程序ID分配给一个常量,我用它来初始化我的应用程序中的Facebook对象.
>我确定我的应用程序被标记为多任务
>我已经在下拉列表中的plist中设置了fbAPP_ID
>我已经将AppDelegate设为FBSessionDelegate,并实现了非常简单的fbDidLogin和fbDidNotLogin委托方法.

版本:XCode 4.3.2在Lion,iOS 5.1,Facebook iOS 4.1.1

所有这一切,我仍然似乎无法让Facebook将控制权返回给我的应用程序,当它授权.它只是留在Facebook而不是.

代码:(注意:FB_APP_ID更改为基本号码以便查看)

AppDelegate.h:

#import <UIKit/UIKit.h>
#import "FBConnect.h"

#define FB_APP_ID @"1234567890"

@interface AppDelegate : UIResponder <UIApplicationDelegate,FBSessionDelegate>

@property (strong,nonatomic) UIWindow *window;
@property (nonatomic,strong) Facebook* facebook;

@end

AppDelegate.m:

#import "AppDelegate.h"

@implementation AppDelegate
@synthesize window = _window;
@synthesize facebook = _facebook;

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    _facebook = [[Facebook alloc] initWithAppId:FB_APP_ID andDelegate:self];
    if (![_facebook isSessionValid])
    {
        [_facebook authorize:nil];
    }
}

- (BOOL)application:(UIApplication*)application handleOpenURL:(NSURL *)url
{
    return [_facebook handleOpenURL:url];
}

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
    return [_facebook handleOpenURL:url];
}

- (void)fbDidLogin
{
    NSLog(@"App logged in");
}

- (void)fbDidNotLogin:(BOOL)cancelled
{
    NSLog(@"App did not login");
}

@end

相关信息:

Facebook应用程序屏幕(主要是粉红色):

注意:我仅使用基本设置,并尝试使用iOS本机应用设置,其中包含假iTunes商店ID,但配置配置文件中的相同包ID.

无论我做什么,总是加载Facebook,并要求授权我的应用程序,然后只需关闭验证屏幕窗口,并坐在我的Facebook屏幕上,而不是返回到我的应用程序.

还要注意:我知道它会一直问,因为我没有检查auth令牌和到期日期…..这是下一步….现在我想至少让它返回到我的应用程序之前我担心这个

我错过了这里的东西吗?还有什么我可以尝试让Facebook回到我的应用程序?

编辑:当调试的时候,似乎找不到任何一个openURL被调用的地方.

编辑#2:在模拟器上运行它时,它通过Safari加载FB对话框(如预期),然后当我授权时,safari会抛出一个错误,就像他们试图用来回到我的应用程序的URL无效:

这还没有告诉我很多,因为我的fb1234567890是设置正确的,我知道在Info.plist.

解决方法

您的info.plist似乎格式不正确

确保url方案嵌套在名为“URL方案”的项目(一个要精确的数组)下

该数组应包含可以启动应用程序的所有可能的URL方案

有关URL方案的更多说明,请参阅附件

url scheme http://f.cl.ly/items/243G1D0H39151q472V1t/Screen%20Shot%202012-05-16%20at%206.52.06%20PM.png

此外,“URL标识符”应该是您的包标识符:ex. com.mycompany.myapp
这应该符合您在配置文件中提供的标识符

希望这可以帮助!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读