Fa'asao le tapulaa su'esu'e a LinkedIn e ala i le ta'alo ma le API

Tapulaa

O loʻo i ai se faʻatapulaʻaina i LinkedIn - Fa'agata fa'aoga fa'apisinisi. E foliga mai o oe, pei o aʻu seia oʻo mai talu ai nei, e leʻi faʻafeiloaʻi pe faʻalogo i ai.

Fa'asao le tapulaa su'esu'e a LinkedIn e ala i le ta'alo ma le API

O le ute o le tapulaʻa e faapea afai e te faʻaaogaina le sailiga mo tagata i fafo atu o au fesoʻotaʻiga i le tele o taimi (e leai ni fua saʻo, o le algorithm e filifili e faʻatatau i au gaioiga - o le a le tele ma le tele o au suʻesuʻega, faʻaopoopo tagata), ona maua lea o le suʻega. o le a fa'atapula'aina i fa'amatalaga se tolu, nai lo le 1000 (fa'aletonu 100 itulau, 10 fa'amatalaga i le itulau). O le tapulaa e toe setiina i le amataga o masina taitasi. masani, e leai se tapula'a o teugatupe fa'apitoa.

Ae e leʻi leva atu, mo se galuega fagafao, na amata ona ou taʻalo tele i le LinkedIn search ma faʻafuaseʻi ona maua lenei tapulaʻa. E masani lava, ou te leʻi fiafia tele i lenei mea, ona ou te leʻi faʻaaogaina mo soʻo se faʻamoemoega faʻapisinisi, o lea o loʻu manatu muamua o le suʻesuʻeina o le tapulaʻa ma taumafai e faʻafefe.

[O se faʻamalamalamaga taua: o mea o loʻo i totonu o le tusiga o loʻo tuʻuina atu mo naʻo faʻamatalaga faʻamatalaga ma aʻoaʻoga. E le fa'amalosia e le tusitala lo latou fa'aogaina mo fa'amoemoega faapisinisi.]

O loʻo matou suʻesuʻeina le faʻafitauli

E i ai a matou: nai lo le sefulu faʻamatalaga faʻatasi ai ma le faʻailoga, o le sailiga e toe foʻi mai naʻo le tolu, a maeʻa ona faʻapipiʻi se poloka ma se "fautuaga" o se teugatupe faʻapitoa ma lalo ifo o faʻamatalaga faʻafefe ma e le mafai ona kiliki.

I le taimi lava lena, e aapa atu le lima i le faʻamafanafanaga faʻapitoa e vaʻai i nei faʻamatalaga natia - masalo e mafai ona tatou aveese ni sitaili faʻafefe, pe aveese faʻamatalaga mai se poloka i le faʻailoga. Ae, e mautinoa lava, o nei talaaga e naʻo ata fa'apipi'i ma e leai se faamatalaga e teuina.

Fa'asao le tapulaa su'esu'e a LinkedIn e ala i le ta'alo ma le API

Lelei, o lea se'i o tatou va'ai i le Network tab ma siaki pe o le su'esu'ega fa'ai'uga e toe fa'afo'i na'o le tolu fa'amatalaga e aoga. Matou te maua le talosaga matou te fiafia i ai mo le "/api/search/blended" ma va'ai i le tali.

Fa'asao le tapulaa su'esu'e a LinkedIn e ala i le ta'alo ma le API

O faʻamatalaga e oʻo mai i se 'aofia ai' faʻasologa, ae ua uma ona i ai faʻalapotopotoga 15. I lenei tulaga, o le tolu muamua oi latou o mea faitino faʻatasi ai ma faʻamatalaga faaopoopo, o mea taʻitasi o loʻo i ai faʻamatalaga i luga o se faʻamatalaga patino (mo se faʻataʻitaʻiga, pe o le faʻamatalaga e faʻapitoa ).

Fa'asao le tapulaa su'esu'e a LinkedIn e ala i le ta'alo ma le API

O le isi 12 o faʻamatalaga moni - suʻesuʻega, lea e naʻo le tolu o le a faʻaalia ia i matou. E pei ona mafai ona e mateina, o loʻo faʻaalia naʻo i latou e mauaina faʻamatalaga faaopoopo (o mea muamua e tolu). Mo se faʻataʻitaʻiga, afai e te ave le tali mai se faʻamatalaga e aunoa ma se tapulaa, o le ae mauaina 28 faʻalapotopotoga - 10 mea faʻatasi ma faʻaopoopoga. fa'amatalaga ma 18 fa'amatalaga.

Tali mo talaaga otooto e aunoa ma se tapulaaFa'asao le tapulaa su'esu'e a LinkedIn e ala i le ta'alo ma le API
Fa'asao le tapulaa su'esu'e a LinkedIn e ala i le ta'alo ma le API

Aisea e sili atu nai lo le 10 faʻamatalaga e oʻo mai, e ui lava e 10 tonu e talosagaina, ma latou te le auai i le faʻaaliga i soʻo se auala, e oʻo lava i le isi itulau e le o iai - Ou te leʻi iloa. Afai e te suʻesuʻeina le URL talosaga, e mafai ona e vaʻai i lena numera = 10 (e fia faʻamatalaga e toe faʻafoʻi i le tali, maualuga 49).

Fa'asao le tapulaa su'esu'e a LinkedIn e ala i le ta'alo ma le API

Ou te fiafia e maua soʻo se faʻamatalaga e uiga i lenei mataupu.

Tatou faataitai

Lelei, o le mea sili ona taua ua tatou iloa nei ma le mautinoa o le tele o faʻamatalaga i le tali nai lo latou faʻaali mai ia i tatou. O lona uiga e mafai ona tatou maua nisi faʻamatalaga, e ui lava i le tapulaʻa. Tatou taumafai e toso le API i tatou lava, tuusaʻo mai le faʻamafanafanaga, faʻaaoga fetch.

Fa'asao le tapulaa su'esu'e a LinkedIn e ala i le ta'alo ma le API

E pei ona faʻamoemoeina, matou te maua se mea sese, 403. E mafua lenei mea i le saogalemu, o iinei matou te le o lafoina se faʻailoga CSRF (CSRF i luga o Wikipedia. I se faapuupuuga, e faʻaopoopoina se faʻailoga tulaga ese i talosaga taʻitasi, lea e siakiina i luga o le server mo le faʻamaoni).

Fa'asao le tapulaa su'esu'e a LinkedIn e ala i le ta'alo ma le API

E mafai ona kopiina mai so'o se isi talosaga manuia po'o mai kuki, lea e teu ai i le 'JSESSIONID' fanua.

O fea e maua ai le faailogaUlutala o se isi talosaga:

Fa'asao le tapulaa su'esu'e a LinkedIn e ala i le ta'alo ma le API

Po'o mai kuki, tuusa'o ile fa'amafanafanaga:

Fa'asao le tapulaa su'esu'e a LinkedIn e ala i le ta'alo ma le API

Sei o tatou toe taumafai, o le taimi lea tatou te pasi atu ai tulaga e aumai, lea tatou te faʻamaonia ai le tatou csrf-token o se parakalafa i le ulutala.

Fa'asao le tapulaa su'esu'e a LinkedIn e ala i le ta'alo ma le API

Manuia, matou maua uma 10 talaaga otooto. :tada:

Ona o le eseesega i ulutala, o le fausaga o le tali e ese teisi mai mea na maua i le uluai talosaga. E mafai ona e maua le fausaga lava e tasi pe afai e te faʻaopopo 'Accept: 'application/vnd.linkedin.normalized+json+2.1' i la matou mea, i tafatafa o le csrf faʻailoga.
Fa'ata'ita'iga tali fa'atasi ma fa'aulutala fa'aopoopoFa'asao le tapulaa su'esu'e a LinkedIn e ala i le ta'alo ma le API

Fa'amatalaga atili e uiga i le ulutala Talia

o sosoo ai le a?

Ona mafai lea ona e faʻasaʻo (manuʻa poʻo le otometi) le 'amata' parakalafa, faʻasino i le faʻailoga, e amata mai lea o le a tuʻuina mai ai ia i matou 10 faʻamatalaga (default = 0) mai le suʻesuʻega atoa. I se isi faaupuga, e ala i le faʻaopoopoina i le 10 pe a uma talosaga taʻitasi, matou te maua le faʻasologa masani o itulau-itulau, 10 faʻamatalaga i le taimi.

I lenei laʻasaga ua lava aʻu faʻamatalaga ma le saolotoga e faʻaauau ai le galue i luga o le galuega fagafao. Ae semanu o se agasala le taumafai e faʻaalia lenei faʻamatalaga saʻo i le taimi, talu ai ua uma ona i ai. Matou te le o i totonu o Ember, lea e faʻaaogaina i luma. jQuery na feso'ota'i i le 'upega tafa'ilagi, ma ua eliina le malamalama o le syntax autu i le mafaufau, e mafai ona e fatuina mea nei i ni nai minute.

jQuery code

/* рендер блока, принимаем данные профиля и вставляем блок в список профилей используя эти данные */
const  createProfileBlock = ({ headline, publicIdentifier, subline, title }) => {
    $('.search-results__list').append(
        `<li class="search-result search-result__occluded-item ember-view">
            <div class="search-entity search-result search-result--person search-result--occlusion-enabled ember-view">
                <div class="search-result__wrapper">
                    <div class="search-result__image-wrapper">
                        <a class="search-result__result-link ember-view" href="/sm/in/${publicIdentifier}/">
                            <figure class="search-result__image">
                                <div class="ivm-image-view-model ember-view">
                                    <img class="lazy-image ivm-view-attr__img--centered EntityPhoto-circle-4  presence-entity__image EntityPhoto-circle-4 loaded" src="http://www.userlogos.org/files/logos/give/Habrahabr3.png" />
                                </div>
                            </figure>
                        </a>
                    </div>
                    
                    <div class="search-result__info pt3 pb4 ph0">
                        <a class="search-result__result-link ember-view" href="/sm/in/${publicIdentifier}/">
                            <h3 class="actor-name-with-distance search-result__title single-line-truncate ember-view">
                                ${title.text}
                            </h3>
                        </a>

                        <p class="subline-level-1 t-14 t-black t-normal search-result__truncate">${headline.text}</p>

                        <p class="subline-level-2 t-12 t-black--light t-normal search-result__truncate">${subline.text}</p>
                    </div>
                </div>
            </div>
        <li>`
    );
};

// дергаем апи, получаем данные и рендерим профили
const fetchProfiles = () => {
    // токен
   const csrf = 'ajax:9082932176494192209';
    
   // объект с настройками запроса, передаем токен
   const settings = { headers: { 'csrf-token': csrf } }

    // урл запроса, с динамическим индексом старта в конце
   const url = `https://www.linkedin.com/voyager/api/search/blended?count=10&filters=List(geoRegion-%3Ejp%3A0,network-%3ES,resultType-%3EPEOPLE)&origin=FACETED_SEARCH&q=all&queryContext=List(spellCorrectionEnabled-%3Etrue,relatedSearchesEnabled-%3Etrue)&start=${nextItemIndex}`; 
    /* делаем запрос, для каждого профиля в ответе вызываем рендер блока, и после инкрементируем стартовый индекс на 10 */
    fetch(url, settings).then(response => response.json()).then(data => {
        data.elements[0].elements.forEach(createProfileBlock);
        nextItemIndex += 10;
});
};


// удаляем все профили из списка
$('.search-results__list').find('li').remove();
// вставляем кнопку загрузки профилей
$('.search-results__list').after('<button id="load-more">Load More</button>');
// добавляем функционал на кнопку
$('#load-more').addClass('artdeco-button').on('click', fetchProfiles);

// ставим по умолчания индекс профиля для запроса
window.nextItemIndex = 0;

Afai e te faia saʻo lenei mea i totonu o le faʻamafanafanaga i luga o le itulau suʻesuʻe, o le a faʻaopoopoina se faʻamau e utaina ai 10 faʻamatalaga fou i kiliki taʻitasi ma tuʻuina atu i se lisi. Ioe, sui le faʻailoga ma le URL i le mea e manaʻomia aʻo leʻi faia lenei mea. O le poloka faʻamatalaga o le a aofia ai le igoa, tulaga, nofoaga, fesoʻotaʻiga i le faʻamatalaga ma se ata faʻapipiʻi.

Fa'asao le tapulaa su'esu'e a LinkedIn e ala i le ta'alo ma le API

iʻuga

O lea, faatasi ai ma se taumafaiga itiiti, na mafai ai ona matou maua le mea vaivai ma toe maua la matou sailiga e aunoa ma ni tapulaa. Na lava le suʻesuʻeina o faʻamaumauga ma lona ala, vaʻavaʻai i le talosaga lava ia.

E le mafai ona ou fai atu o se faʻafitauli tuga lea mo LinkedIn, aua e leai se faʻamataʻu. Ole maualuga ole tupe maua e leiloa ona o ia "fa'aogaina", lea e mafai ai ona e aloese mai le totogiina o tupe totogi. Masalo e manaʻomia se tali a le 'auʻaunaga mo le faʻagaioiga saʻo o isi vaega o le saite, pe naʻo le paie o le au atiaʻe ma le le lava o punaoa e le mafai ai ona faia lelei. (O le tapulaʻa na faʻaalia ia Ianuari 2015; ae leʻi oʻo i lenei mea e leai se tapulaa).

SALA

E masani lava, o le code jQuery o se faʻataʻitaʻiga muamua o le gafatia. I le taimi nei ua ou fatuina se faʻaopoopoga o suʻesuʻega e fetaui ma ou manaʻoga. E fa'aopoopoina fa'amau fa'atonu ma tu'uina atu fa'amatalaga atoa ma ata, se fa'amau vala'aulia ma feso'ota'iga lautele. E le gata i lea, e fa'aputuina fa'amalosi mo nofoaga, kamupani, ma isi mea, ma toe aumai se fa'ailoga mai kuki. E le toe mana'omia la ona fa'amalo se mea. Ia, e faʻaopoopoina faʻaopoopoga faʻalapotopotoga, a la "pe fia faʻamatalaga e talosagaina i le taimi, e oʻo atu i le 49."

Fa'asao le tapulaa su'esu'e a LinkedIn e ala i le ta'alo ma le API

O loʻo ou galue pea i lenei faʻaopoopoga ma fuafua e faʻasalalau atu i tagata lautele. Tusi pe a e fiafia.

puna: www.habr.com

Faaopoopo i ai se faamatalaga