3

LinkedIn JS SDK 似乎存在错误。您可以使用他们在文档的“入门”部分中提供的代码进行复制。

<!DOCTYPE html>
<html>
<head>
    <title>LinkedIn test</title>

    <script>
        // Setup an event listener to make an API call once auth is complete
        function onLinkedInLoad() {
            IN.Event.on(IN, "auth", getProfileData);
        }

        // Handle the successful return from the API call
        function onSuccess(data) {
            console.log(data);
        }

        // Handle an error response from the API call
        function onError(error) {
            console.log(error);
        }

        // Use the API call wrapper to request the member's basic profile data
        function getProfileData() {
            IN.API.Raw("/people/~").result(onSuccess).error(onError);
        }
    </script>
    <script type="text/javascript" src="//platform.linkedin.com/in.js">
        api_key: [API_KEY]
        onLoad: onLinkedInLoad
    </script>

</head>
<body>

<script type="in/Login"></script>

</body>
</html>

如果您将此代码放在非 https 网站上并在 iOS Safari 上点击该 URL,则单击“使用 LinkedIn 登录”按钮将启动授权,但“身份验证”回调将永远不会触发。相反,您会在控制台中收到 CORS 错误:

“未捕获的 SecurityError:阻止具有来源的框架“ https://platform.linkedin.com ”访问具有来源的框架......”

所有其他环境似乎都可以正常工作(例如 Chrome、FF、IE、桌面 Safari、Android 浏览器等)。如果我在 Chrome 的开发工具中将用户代理设置为 iOS 设备,我也能够重现该问题,这让我认为 JS SDK 正在执行用户代理嗅探。

有解决方法吗?LinkedIn 开发团队是否意识到这个问题?我错过了星期一的细节吗?

PS这可能是相关的:Sign in with Linkedin doesn't trigger callback on iOS Safari when using the JS API

4

2 回答 2

2

根据 LinkedIn 的JavaScript SDK 入门页面,LinkedIn JavaScript SDK 不支持 iOS 5+。

注意:JavaScript SDK 与 iOS 5+ 不兼容。

于 2015-09-16T22:07:03.250 回答
0

@degrassesagan 我认为您需要执行以下操作:

function onLinkedInLoad() {
  IN.Event.on(IN,"auth",getProfileData);
  IN.Event.on(IN,"success",onSuccess);
  IN.Event.on(IN,"error",onError);
}

我发现还有一个与 LinkedIn JS SDK 相关的问题。我使用的是移动版 Safari 10.3.3,虽然登录业务逻辑执行正确,但 URL 流却没有。成功登录后,页面转到LinkedIn“未找到页面”页面,而不是关闭当前浏览器选项卡,以显示下面的所有者页面?

我不确定这是否与原始问题有关,但如果有人能阐明这个问题,我将不胜感激。

于 2018-03-12T17:30:41.567 回答