API на LinkedIn - получавайте актуализации на компанията

Опитвам се да извлека актуализации на компанията, използвайки API на LinkedIn. Някак си не мога да накарам това да работи. Виждам console.log("On auth"); в конзолата, но след това нищо не се случва. Сякаш спира с тази функция... Няма видими грешки, няма други съобщения на конзолата. Някой има ли идея какво може да не е наред?

Използвам тестовата компания на LinkedIn, която не изисква никакви администраторски разрешения.

Моят код е следният:

<head>
    <script type="text/javascript" src="https://platform.linkedin.com/in.js">
    api_key: 14characters
    onLoad: onLinkedInLoad 
    authorize: true 
    </script>
</head>

<body>
    <div id="displayUpdates"></div>

    <script type="text/javascript">
        function onLinkedInLoad() {
            IN.Event.on(IN, "auth", onLinkedInAuth);
            console.log("On auth");
        }
        function onLinkedInAuth() {
            var cpnyID = 2414183; //LinkedIn's testDevCo
            IN.API.Raw("/companies/" + cpnyID + "/updates?event-type=status-update&start=0&count=10&format=json")
                .result(displayCompanyUpdates);
                console.log("After auth");
        }
        function displayCompanyUpdates(result) {
            var div = document.getElementById("displayUpdates");
            var el = "<ul>";
            var resValues = result.values;
            for (var i in resValues) {
                var share = resValues[i].updateContent.companyStatusUpdate.share;
                var isContent = share.content;
                var isTitled = isContent,
                    isLinked = isContent,
                    isDescription = isContent,
                    isThumbnail = isContent;
                if (isTitled) {
                    var title = isContent.title;
                } else {
                    var title = "News headline";
                }
                if (isLinked) {
                    var link = isContent.shortenedUrl;
                } else {
                    var link = "#";
                }
                if (isDescription) {
                    var description = isContent.description;
                } else {
                    var description = "No description";
                }
                if (isThumbnailz) {
                    var thumbnailUrl = isContent.thumbnailUrl;
                } else {
                    var thumbnailUrl = "http://placehold.it/60x60";
                }
                if (share) {
                    var content = "<a target='_blank' href="/bg + link + ">" + title + "</a><br>" + description;
                    el += "<li><img src='" + thumbnailUrl + "' alt=''>" + content + "</li>";
                }
                console.log(share);
            }
            el += "</ul>";
            div.innerHTML = el;
        }
        </script>
</body> 

person Meek    schedule 05.01.2016    source източник
comment
ако поставите console.log() в началото на onLinkedInAuth() регистрира ли се? също onload трябва да бъде - onLoad **A comma-separated list** of the names of Javascript functions that you want the SDK to execute once it has successfully loaded itself.   -  person Craicerjack    schedule 05.01.2016
comment
Благодаря, че се отзовахте. Не, не извежда нищо в началото на onLinkedInAuth()...   -  person Meek    schedule 05.01.2016
comment
Така че onLinkedInAuth() не се извиква, така че вашият проблем е с този ред IN.Event.on(IN, "auth", onLinkedInAuth);. Не съм използвал API на Linkedin, така че съжалявам, не мога да помогна повече от това - опитахте ли да използвате различен eventName, различен от auth   -  person Craicerjack    schedule 05.01.2016
comment
Добре. Опитах се да променя onLoad на: onLoad: onLinkedInLoad, onLinkedInAuth, displayCompanyUpdates, което внезапно ми дава тази грешка: Не мога да прочета 'стойности' на свойство на undefined, сочещи към този ред: var resValues = result.values;   -  person Meek    schedule 05.01.2016
comment
Така че добавянето на функциите към onLoad изглежда върши работа. Въпреки това все още получавам тази грешка: Не мога да прочета „стойности“ на свойствата на undefined, сочещи към този ред: var resValues = result.values; - но все още показва 10-те публикации въпреки тази грешка. Някаква идея какво не е наред с result.values? Документите са тук: developer.linkedin.com/docs/company-pages#company_updates   -  person Meek    schedule 05.01.2016
comment
добре, гледайки кода ви, вашата функция function displayCompanyUpdates(result) приема резултатен параметър, но вие не го предавате, когато го извиквате, така че result е недефиниран   -  person Craicerjack    schedule 05.01.2016
comment
Добре, благодаря, че забеляза. Какво трябва да променя, за да го предам правилно?   -  person Meek    schedule 06.01.2016
comment
@Craicerjack Реших го, като премахнах displayCompanyUpdates от onLoad. Очевидно са били необходими само onLinkedInLoad и onLinkedInAuth. Моля, оставете отговор, тъй като все пак ми помогнахте по пътя да накарам това да работи. Благодаря.   -  person Meek    schedule 06.01.2016
comment
прегледайте всичко, което сте направили, за да поправите това и оставете свой собствен отговор с всички тези подробности в него. Можете да го приемете на по-късен етап. Просто се радвам, че сте го подредили.   -  person Craicerjack    schedule 07.01.2016
comment
Как да получа cpnyID??/.. Намерих го от Url, но не работи....   -  person Champ Decay    schedule 27.10.2017


Отговори (1)


В крайна сметка имах това в главата - добавих onLinkedInAuth към onLoad:

<script type="text/javascript" src="https://platform.linkedin.com/in.js">
    api_key: 14characters
    onLoad: onLinkedInLoad, onLinkedInAuth 
    authorize: true 
</script>

Това свърши работа.

person Meek    schedule 07.01.2016
comment
Как да намеря ID на фирма?? - person Champ Decay; 27.10.2017
comment
Това са числата в края на URL адреса на компанията в LinkedIn, напр.linkedin.com/company/3724 -› идентификаторът е 3724. - person Meek; 27.10.2017