Instagram zatvoril API bez varovania: aký je dôvod a k čomu by to mohlo viesť? Čo robiť, ak Instagram neposkytuje prístup k API? Doplnok Instagram zatvára API z aplikácií tretích strán

Instagram dnes zverejnil vyhlásenie, v ktorom sa zaoberá zásadnou zmenou v politike spoločnosti. Sociálna sieť zatvára svoje API pred novými vývojármi tretích strán a bude auditovať všetkých existujúcich. Zmeny ovplyvnia všetky aplikácie, ktoré vám umožnili prezerať si informačný kanál Instagramu prostredníctvom zdrojov tretích strán, ako aj automaticky umiestňovať lajky a uverejňovať príspevky na Instagrame.

Instagram bol spustený v roku 2011 a samotní tvorcovia priznávajú, že v tom čase nemali dostatok prostriedkov na rozvoj všetkých schopností platformy, ktorú vytvorili. Otvorené API umožnilo vývojárom tretích strán vytvárať stovky aplikácií, ktoré boli založené na funkcionalite sociálnej siete. Po 4 rokoch sa Instagram rozhodol túto príležitosť uzavrieť.

V prvom rade je to kvôli tomu, že Instagram je podľa novinárov TechCrunch zaneprázdnený zvyšovaním ziskov. Prinajmenšom všetky nedávne kroky spoločnosti na to presne poukazujú. Začiatkom septembra sa rozšírili aj možnosti zverejňovania obsahu v užívateľskom feede a o niečo neskôr aj sociálna sieť Boomerang, v ktorej sa dajú robiť loopingové videá.

Aplikácie vytvorené samotným Instagramom sú ďalším dôvodom tohto kroku. Pred Boomerangom vydala sociálna sieť ďalšie dve aplikácie: Layouts - pre fotografické koláže a Hyperlapse - pre časozbery. V súvislosti s tým sa stávajú záťažou aplikácie tretích strán, ktoré opakujú alebo dopĺňajú hlavnú funkcionalitu sociálnej siete.

Od dnešného dňa Instagram zakázal prístup k rozhraniu API pre nové aplikácie. Od 3. decembra začne kontrola všetkých existujúcich aplikácií, ako aj kontrola nových, v súlade s aktualizovanou politikou. 1. júna 2016 budú musieť všetky staršie aplikácie súhlasiť s novými podmienkami API.

Zníženie sa dotkne predovšetkým aplikácií, ktoré vám umožnia prezerať si Instagram feed na zariadeniach, na ktorých Instagram nie je. Do 1. júna sa teda zmeny dotknú aplikácií ako Retro, Flow, Padgram, Pictacular pre iPad, Webbygram, Webstagram, Instagreat, Itsdagram pre desktop atď.

Tieto zmeny majú aj pozitívnu stránku. Používatelia sociálnych sietí poznamenávajú, že zakázaním možnosti prijímať/nastavovať automatické hodnotenia Páči sa mi a odbery prostredníctvom aplikácií tretích strán odstránite mnohé služby, ktoré vám umožňujú „nafúknuť“ štatistiky profilu. Zhruba povedané, obchody na Instagrame prestanú odoberať necieľové publikum.

Instagram kúpil Facebook v roku 2012 za 1 miliardu dolárov V súčasnosti má používateľská základňa viac ako 400 miliónov ľudí.

Publikum Instagramu na Ukrajine je približne 800 000 ľudí. Okrem toho asi 66 % divákov tvoria dievčatá. Viac o ukrajinskom publiku sociálnej siete si môžete prečítať v článku, ktorý sme zverejnili minulý mesiac.

Všimli ste si chybu? Vyberte ho a kliknite Ctrl+Enter aby sme to vedeli.

Správa, že Instagram zatvoril svoje API nie v decembri, ako sa pôvodne plánovalo, ale práve teraz, bola pre všetkých skutočným prekvapením, pretože nikde neboli žiadne upozornenia na nadchádzajúce zmeny. Niektorí používatelia však objavili predpoklady na zatvorenie API už 31. marca, keď ich Instagram pobúril tým, že počet požiadaviek na API obmedzil až dvadsaťpäťkrát (z 5000 na 200)!
2. apríla bol prístup už čiastočne zablokovaný a 5. apríla takmer všetky zdroje tretích strán, ktoré neboli partnermi Facebooku, čelili výrazným obmedzeniam. Čo to ovplyvnilo?

Analytické služby, ktoré analyzujú používateľské účty najmä LiveDune, odteraz už nebudú môcť prijímať informácie z Instagramu tak, ako sú zvyknutí, to znamená, že úplná analýza účtov už nie je možná (jedinou výnimkou sú obchodné účty). Hĺbková analýza publika a typov predplatiteľov, ako aj vyhľadávanie a analýza hashtagov sú teraz tiež nemožné.
Sledovanie komentárov je nedostupné, vykladanie predplatiteľov sa stalo nereálnou úlohou – mobilné aplikácie, ktoré predtým ukazovali, kto a kedy si predplatil účet, zamrzli. Existujú predpoklady, že v blízkej budúcnosti nebude možné vidieť predplatiteľov prostredníctvom súkromného rozhrania API, a preto všetky služby, ktoré prostredníctvom neho pracujú (vrátane služieb na kontrolu blogerov), v blízkej budúcnosti neodvolateľne upadnú do zabudnutia. Vo svetle takýchto zmien už mnohí začínajú vážne uvažovať o prechode na podnikateľské účty, pretože teraz je to jediná možnosť, ako získať hĺbkovú analýzu svojich vlastných účtov a širšie možnosti používania služby ako celku.

Materskou spoločnosťou, teda Facebookom, teraz otriasa obrovská panika kvôli nedávnemu škandálu so spoločnosťou Cambridge Analytica – tá sa odvážila použiť používateľské účty na dosiahnutie vlastných cieľov a obišla tak pravidlá sociálnej siete. Pôvodne sa uvádzalo, že z hlbín Facebooku uniklo asi päťdesiat miliónov účtov, no podľa najnovších údajov sa objem úniku ukázal byť oveľa pôsobivejší - ako sa ukázalo, už prekročili osemdesiatsedem miliónové účty! Panika zo strany Facebooku je teda celkom pochopiteľná, pretože to všetko nemôže ovplyvniť reputáciu spoločnosti, a to nie práve najlepším spôsobom (dokonca aj kapitalizácia Facebooku klesla za posledných pár týždňov až o šesťdesiat miliárd dolárov). Neočakávané a šokujúce zatvorenie API nie je nič iné ako pokus spoločnosti posilniť ochranu cenných užívateľských dát.

Takéto rozhodnutie Facebooku však môže výrazne skomplikovať prácu marketingovým spoločnostiam, servisným spoločnostiam (sledovanie zákazníckych recenzií a sťažností bude teraz mimoriadne problematické) a progresívnym vývojárom, pretože neočakávaná inovácia bude mať veľmi negatívny vplyv na fungovanie služieb pre vyhľadávanie recenzie a analýzy predplatiteľov.

Čo očakávať ďalej? A to je už otázka času, keďže zástupcovia Instagramu momentálne nedávajú žiadne oficiálne odpovede ani komentáre a rúško tajomstva ešte nezohnala ani stránka spoločnosti Facebook!

A zdalo sa mi, že by sa dalo pokračovať.

Nie je žiadnym tajomstvom, že najpopulárnejšou a najziskovejšou platformou pre reklamu, podnikanie a ďalšie veci je Instagram. Prečo sa to stalo službou, do ktorej bolo najskôr možné nahrať iba obrázky určitej veľkosti (myslí sa pomer strán) a na sociálnych sieťach tej doby nebolo absolútne nič - je úplne nejasné, ale faktom je skutočnosť. Vzhľadom na to sa každý snaží preniknúť na platformu Instagram a zachytiť odtiaľ najväčší počet divákov, a to, samozrejme, nie manuálne. A z toho vyplýva, že Instagram prísne blokuje prístup pre robotov, spamerov atď., aby sieť zostala čistá.

  1. Najužitočnejšie funkcie (uverejňovanie a odstraňovanie príspevkov) sú dostupné iba z mobilnej aplikácie Instagram, emulácia požiadaviek je náročná, pretože z aplikácie musíte vytiahnuť kľúč, ktorý sa aktualizuje s každou novou verziou.
  2. Webová verzia je odrezaná, ale som rád, že má možnosť dávať komentáre, komentovať a mazať komentáre
  3. Existuje API, ale postup na jeho získanie je frustrujúco dlhý a spameri a roboti túto možnosť rozhodne nemajú. Navyše bolo veľa momentov, kedy sa konvencie v API zmenili, čo nie je vždy vhodné.
Aj keď som sa nezapojil do Instagramu, aby som vytvoril ďalšieho spamového robota, ktorý by sa mohol prihlásiť na odber a páčiť sa mi, naozaj som sa nechcel obťažovať získavaním rozhrania Instagram API, takže som si musel napísať vlastnú knižnicu na interakciu s Instagramom.

Chcel by som povedať, že práca s webovou verziou Instagramu je veľmi príjemná z dvoch dôvodov:

1. Stručné informácie o akejkoľvek stránke môžete získať odoslaním žiadosti GET, ako napríklad:

https://instagram.com/zuck/?__a=1
A odpoveď je JSON s dostupnými informáciami, prvými 10 príspevkami na stránke a tak ďalej. Veľmi pekné.

2. Ak vám stručné informácie nestačia, potom je tu ešte jedna dobrá správa. Môžete znova nahrať fotografie, odbery, komentáre pomocou konkrétnej žiadosti, ako je

https://www.instagram.com/graphql/query/?query_id=17888483320059182&variables=...
, kde sa premenné odovzdávajú premenným na spracovanie vo formáte JSON. Odpoveď je tiež JSON. A vo všeobecnosti je zrejmé, že toto všetko funguje na GraphQL, takže ak chcete pochopiť, ako sa spracúvajú požiadavky, môžete si to dokonca vygoogliť.

Na základe týchto poznatkov je postavená celá knižnica. Stručne popíšem, ako sa to dá použiť, možno sa to niekomu bude hodiť. Mimochodom, v úložisku som uviedol licenciu BSD 3 Povedzte mi, možno by som ju mal zmeniť, aby neboli žiadne ťažkosti?

Inštalácia

Nie je potrebné ho inštalovať. Presnejšie povedané, bol som lenivý písať všetky druhy setup.py alebo baliť, keď knižnica pozostáva len z jedného súboru. Preto existuje jednoducho súbor instagram.py, ktorý je pripojený takto:

Importujte instaparser

Ako sa to používa?

Interakcia s Instagramom je možná s autorizáciou alebo bez nej. Bez autorizácie neexistujú žiadne funkcie na prezeranie odberov a predplatiteľov a samozrejme nie je možné niečo páčiť, komentovať atď. Jediné obmedzenia s autorizáciou: nie je možné uverejňovať príspevky a mazať ich.

From instaparser.agents import Agent from instaparser.entities import Account agent=Agent() account=Account("zuck") agent.update(account) media=agent.get_media(account, count=100) for m in media: print( m)
Ako viete, tento skript stiahne informácie o stránke Marka Zuckerberga, stiahne posledných 100 príspevkov z jeho stránky a zobrazí ich na obrazovke.

Chcem povedať, že keby som nepísal

Agent.update(účet)
potom by načítanie príspevkov nebolo možné, pretože neboli známe žiadne informácie o Zuckerbergovej stránke.

Z instaparser.agents importujte AgentAccount z instaparser.entities import Account agent=AgentAccount("oleg_yurchik", "imasuperpassword") agent.update() account=Account("zuck") agent.update(account) # atď.
Ide o tzv Ahoj svet!. Alebo rýchly štart.

Teraz vám poviem viac:

Instagram má v skutočnosti iba 6 subjektov:

  1. účtu
  2. Geolokácia
  3. Komentár
  4. Mriežka
  5. Príbehy
Všetko ostatné sú len zoznamy týchto entít, ako sú lajky, odbery, odberatelia atď. A pre každú entitu má svoju vlastnú triedu. Pre účty - Účet, príspevky - Médiá, geolokácie - Poloha, komentáre - Komentár, hashtagy - Tag, príbehy - Príbeh. A každý z nich (okrem komentárov) je potrebné pred prácou s ním aktualizovať. To znamená, že ak si chcete stiahnuť všetky svoje príspevky, páčiť sa im a získať zoznam geolokácií, musíte urobiť nasledovné:

Z instaparser.agents importujte AgentAccoun agent=AgentAccount("oleg.yurchik", "iné superheslo") agent.update() media=agent.get_media(count=agent.media_count) locations= for m in media: agent.like(m) agent.update(m), ak m.location: locations.append(m.location)
A ak neskôr potrebujete získať posledných 10 príspevkov pre konkrétnu geolokáciu, budete musieť urobiť nasledovné:

Agent.update(location) media=agent.get_media(location, count=10)
Musel som odstrániť funkciu aktualizácie účtu z inicializácie, pretože ak by bolo napríklad potrebné získať všetkých predplatiteľov, program by aktualizoval každý z účtov, čo nie je dobré.

Knižnica je založená na knižnici požiadaviek a jednou z funkcií, ktorú si myslím, je, že metódam môžete odovzdať aj ďalšie parametre pre požiadavky. Tento nápad mi prišiel prvýkrát, keď som dostal chybu 429 z Instagramu. Bolo potrebné použiť proxy.

Môžete to urobiť napríklad takto:

Media=agent.get_media(count=agent.media_count, settings=("proxy": ("https": "127.0.0.1:80")))
kde 127.0.0.1:80 - môžete zadať proxy

Tiež si myslím, že ďalšou vlastnosťou môže byť zachytenie chýb.

V triedach Agent a AgentAccount (tie, ktoré komunikujú s Instagramom) je slovník organizovaný ako strom, tzv. výnimkové_akcie. Ukladá triedy výnimiek ako kľúče a funguje ako hodnoty. Ak sa náhle vyskytne nejaká chyba, zachytí sa a vykoná sa funkcia zo slovníka. Tejto funkcii sa odovzdá objekt výnimky a parametre, s ktorými bola požiadavka vykonaná. Môže vykonať nejakú akciu a vrátiť zmenené (alebo nie) parametre požiadavky. Žiadosť sa vykoná znova. A bude sa opakovať toľkokrát, koľkokrát je zadané v parametri Agent.repeats. Predvolená hodnota je 1.

A nemusíte sa báť preplnenia pamäte.

Každá trieda entity má slovník, v ktorom sú uložené všetky objekty tejto triedy (alebo aj objekty podtriedy). Ak teda náhodou vytvoríte napríklad už vytvorený účet, konštruktor vám vráti odkaz na predtým vytvorený účet.

A nakoniec poviem, že v dôsledku niektorých rozhodnutí sa objavili aj problémy:

  1. Napríklad problém pri opätovnom vytváraní objektu. Ak zrazu chcete používať svoj účet ako pracovný účet a komunikovať prostredníctvom neho, ale predtým bol vytvorený ako bežný účet, nebudete ho môcť znova vytvoriť. Zatiaľ neviem ako to vyriešiť.
  2. Zachytávanie chýb sa niekedy správa veľmi zvláštne a nie je úplne otestované.
Naozaj dúfam, že možno toto riešenie bude niekomu užitočné, dúfam v akékoľvek užitočné pripomienky a pomoc pri dokončení tejto veci. V článku, ktorý som spomínal, bol uvedený príklad takéhoto skriptu v PHP, no ten len zbieral informácie a podľa mňa fungoval len so starou verziou webového rozhrania Instagramu.

Ďakujem za tvoju pozornosť.

Pokračovanie v téme:
Smart TV

Byť odborníkom je čestné a užitočné. Odborníci si ľahšie nájdu prácu a klientov, počúvajú ich názory a sú viac platení. Každý druhý by sa chcel stať odborníkom a každý...