==问题总结==
问题是,从我的 iOS 应用程序打开一个 URL(将证书添加到用户的 LinkedIn 个人资料中)会重定向到 LinkedIn 应用程序(如果已安装)。 LinkedIn 应用程序似乎无法正确处理此 URL(或者我需要不同的 URL),因此如果 iOS 设备上安装了 LinkedIn 应用程序,我无法将证书链接到个人资料。
用于添加证书的“文档”: https://addtoprofile.linkedin.com/cert
==详情==
使用 LinkedIn API,我可以使用如下 URL 成功将证书链接到个人资料:
https://www.linkedin.com/profile/add
?_ed=<value>
&pfCertificationName=<name>
&pfCertificationUrl=<url>
&source=o
&pfLicenseNo=<licenseNo>
&pfCertStartDate=201510
&trk=<value>
这适用于桌面网络和 Android 等其他平台。在我们的 iOS 移动应用程序中,我可以通过应用程序委托执行此 url:
UIApplication.sharedApplication().openURL(url)
...在 mobile safari 中打开 URL 并成功提供 UI 以将证书添加到用户的 LinkedIn 个人资料(在 mobile safari 中)。
== LinkedIn 应用程序问题 ==
但是,如果设备上安装了 LinkedIn 应用程序,则 URL 将从 mobile safari 重定向到 LinkedIn 应用程序,并且不提供用于将证书添加到用户的 LinkedIn 个人资料的 UI。实际上,我被带到 LinkedIn 应用程序中的一个页面,上面写着“此个人资料不可用”。
我尝试集成 LinkedIn SDK 以查看是否有帮助,但是,它只是将 LinkedIn 应用程序打开到启动页面,并且没有提供进一步的 UI 来链接认证。我已经尝试过使用 URL 发送请求和获取请求。这是我使用过的一些 Swift 代码:
let url: NSURL = <url_i_mention_above>
let linkToProfile: Void -> Void = {
LISDKAPIHelper.sharedInstance().postRequest(
url.absoluteString,
stringBody: "",
success: { (response) in
logError("LinkedIn Response: \(response.data)")
},
error: { (error) in
logError("LinkedIn Error: \(error)")
})
}
if !LISDKSessionManager.hasValidSession() {
LISDKSessionManager.createSessionWithAuth([LISDK_BASIC_PROFILE_PERMISSION], state: "", showGoToAppStoreDialog: true, successBlock: { (returnState) in
logError("LinkedIn Auth Success: \(returnState)")
linkToProfile()
}, errorBlock: { (error) in
logError("LinkedIn Auth Error: \(error.localizedDescription)")
})
} else {
linkToProfile()
}
LinkedIn 文档实际上并不存在于 Web 按钮之外的证书添加功能中。 文档:https://addtoprofile.linkedin.com/cert
此外,LinkedIn 不提供 StackOverflow 之外的支持: https://developer.linkedin.com/support
这些是我可以帮助回答的问题:
任何帮助都会很棒。我在此处的少量 LinkedIn 移动 SDK 文档中没有找到答案: https://developer.linkedin.com/docs/ios-sdk
作为参考,这是上述代码的身份验证部分: https://developer.linkedin.com/docs/ios-sdk-auth
我有类似的问题,相同的链接
我所说的选择用户的意思是,假设我以 X 身份登录,链接会定向到应用程序上的“添加证书”页面,但在同一部手机上,如果我以 Y 身份登录,它无法重定向,并且我得到“找不到页面”错误。
两个用户是相同的。用于测试的设备是相同的。 (iOS 17 与 LinkedIn 应用程序版本相同)。
联系 LinkedIn 支持没有任何帮助。任何解决方案表示赞赏。