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 でサインイン] ボタンをクリックすると承認が開始されますが、'auth' コールバックは起動しません。代わりに、コンソールに CORS エラーが表示されます。

「Uncaught SecurityError: Blocked a frame with origin " https://platform.linkedin.com " from the frame with origin ..."

他のすべての環境 (Chrome、FF、IE、デスクトップ Safari、Android ブラウザなど) は問題なく動作するようです。Chrome の開発ツールでユーザー エージェントを iOS デバイスに設定すると、問題を再現することもできます。これにより、JS SDK がユーザー エージェント スニッフィングを行っていると思われます。

回避策はありますか? LinkedIn 開発チームはこの問題を認識していますか? 月曜日の詳細を見逃しましたか?

PSこれはおそらく関連しています:Linkedinでサインインしても、JS APIを使用している場合、iOS Safariでコールバックがトリガーされません

4

2 に答える 2