如果已登录LinkedIn App

时间:2018-10-15 18:00:28

标签: ios objective-c swift linkedin linkedin-api

我正在使用iOS LinkedIn SDK登录我的应用并检索基本个人资料。 第一次登录时,一切正常,直到退出或关闭我的应用为止。

尝试使用LinkedIn重新登录到我的应用程序时:通常会重定向到LinkedIn应用程序,但是不会弹出我的应用程序的权限屏幕,它只会直接重定向回我的应用程序,但出现以下错误:

Error Domain = LISDKAuthError Code = 5“(null)” UserInfo = {errorDescription =该操作无法完成。软件导致连接异常终止,originalDomain = LISDKServerError,errorInfo = PARSING_ERROR}

如果我先关闭LinkedIn应用程序,然后再重新打开我的应用程序,则只能重新成功登录。

请问有人知道发生了什么吗?

-这并非在我所有的测试设备上都发生!

-在运行该设备的设备上,运行LinkedIn SDK附带的示例应用程序时,在这种情况下我也收到相同的错误。

-LinkedIn应用程序是最新的。

-App ID,bundle ID等都已设置,因此成功登录的时间有一半!

-我曾尝试在多个位置调用[LISDKSessionManager clearSession]。

4 个答案:

答案 0 :(得分:1)

Cheeky框架修复警报。

取消注释LISDKSession.h中的行 这样可以正确使用[LISDKSessionManager hasValidSession]

与我们合作的内容有所改进。 尚未在iOS12上进行测试...

答案 1 :(得分:0)

我有类似的问题。它主要仅在iOS 12上复制。问题是,当您已经在运行LinkedIn应用程序时,将无法在应用程序中通过其SDK登录。在iOS 11上,第二次尝试在此错误之后尝试登录时,授权工作正常。 我通过简单地向用户显示警报以及有关他需要做的授权消息来解决此问题。

在这里,您可以查看我在Swift 4中的实现示例:

LISDKSessionManager.createSession(withAuth: ["r_basicprofile"],
                                  state: nil, 
                                  showGoToAppStoreDialog: true,
                                  successBlock: { _ in
                   // Your actions in case of successful authorization
                }, errorBlock: { error in

                    guard let nsError = error as NSError? else {
                        return
                    }

                    if #available(iOS 12.0, *),
                        nsError.code == LISDKErrorCode.SERVER_ERROR.rawValue {
                        // Show alert to user with text - "Please, shut down the LinkedIn app and try login again"
                    } else if nsError.code != LISDKErrorCode.USER_CANCELLED.rawValue {
                        // Handling when user tap on Cancel button in LinkedIn SDK
                    }
})

答案 2 :(得分:0)

几个月来,我一直在努力与LinkedIn进行修复。 有“解决方案”是杀死SDK。 摘自其2018年12月的``对LinkedIn开发人员计划和API的重要更新''电子邮件:

“身份验证,SDK和插件:我们还将不推荐使用几种过时或很少使用的产品和技术。”

“ SDK:我们的JavaScript和移动软件开发套件(SDK)将停止工作。开发人员将需要直接从其应用迁移到使用OAuth 2.0。”

答案 3 :(得分:0)

LISDKSession.h

中取消注释这两行代码
- (LISDKAccessToken *)getAccessToken;

- (void)setAccessToken:(LISDKAccessToken *)accessToken;