Zadejte hledaný výraz...
Jakub Glos
Webtrh.cz
Vývoj webových stránek na WordPressu a proklientský přístup pro freelancery
Třídenní infromacemi nabitý prezenční + online kurz v Praze od Webtrhu pouze za 2 871 Kč
Více informací

InstagramAPI – lze volat client side?

Bacon
verified
rating uzivatele
(2 hodnocení)
18. 9. 2015 04:05:46
Ahoj,
v JS se moc nevyznám, takže nevím, jak to chodí... Teď by se mi ale hodilo, z důvodu vysokého počtu potřebných požadavků na API, přenést část zátěže na klienta.
Nechci zabíhat do detailů, ale vysvětlil bych to asi takto:
Nyní mám PHP aplikaci, je zaregistrovaná v Instagram API. Uživatel se přihlásí, já získám jeho token a jsem schopen získat seznam lidí, které on sleduje.
Problém je v tom, že Instagram API vrací maximálně 100 uživatelů najednou a dále je potřeba stránkovat. To znamená, že pokud má někdo 1000 uživatelů ve sledování, musím poslat 10x GET. Dále chci získat fotky 10 - 20 lidí, které takto získám... To se rovná dalších 10 - 20 GET požadavků (a získám pouze posledních 20 fotografií od každého uživatele). Pokud by aplikaci použilo více lidí najednou, dostáváme se třeba na tisíce požadavků...
Není způsob, jak přesunout toto získávání dat na uživatele, resp. JS aplikaci, která by poté jen odeslala balík dat zpět, do mého vlastního API, kde bych s těmi daty mohl zase pracovat?
A pokud by to šlo, lze to udělat tak, aby u klienta nebyla možnost data nijak upravovat a poslat mi do té API podvržená data?
Sorry, že mám takový základní otázky, ale já se maximálně patlám v PHP a toto jde dost mimo mě.
18. 9. 2015 04:05:46
https://webtrh.cz/diskuse/instagramapi-lze-volat-client-side/#reply1140864
vpixle
verified
rating uzivatele
(3 hodnocení)
2. 10. 2015 16:53:22
Fakt netusim, co s tim chces pachat, ale pri soucasne architekture by tvuj server mel jenom "ubytovat" JS, postarat se o jeji natazeni a potom delat o veci ktere dnes server ma. Tzn. autentifikaci, rizeni prav, posilani mailu, push notifikaci, ukladani historie, pamatovani si nejakych kratkych JSONU.
Hlavni trafic se bude dit mezi klientem a Instagramem, vetsina logiky pobezi na klientovi. I ten bezpecnostni model je postaveny tak, ze bezpecne to je pouze na trase mezi Instagramem a klientem. Jakmile si zacnes delat nejaky kopie, tak ti tam kazdej z uctu "jardaKropacek" (kterej si za tim ucelem zalozi na Instagramu) naposila tuny marastu.
Navic jak si zacnes na svem zeleze zacnes vytvaret kopii instagramu, nekde na svete budou umirat kotatka!
2. 10. 2015 16:53:22
https://webtrh.cz/diskuse/instagramapi-lze-volat-client-side/#reply1140863
Bacon
verified
rating uzivatele
(2 hodnocení)
2. 10. 2015 17:03:21
Díky za info, zamýšlel jsem něco jako Instagram hru. Po přihlášení k Instagramu by se vytvořil "kvíz", jak dobře znáš své follows a např. bys viděl fotku a měl bys za úkol uhodnout, kdo ji sdílel, atd.
Jenže Instagram API má spoustu omezení (typicky počet itemů na stránku), což by mohlo při více uživatelích znamenat velké množství požadavků (získání seznamu follows, získání jejich fotek, atd.), takže jsem to chtěl tak, že by samotný web s hrou byl v JS a volání Instagram API by se dělo ze strany klienta, tudíž by nezatěžovalo můj server.
Ale to by hra docela ztrácela smysl, protože pokud by tato data byla dostupná u klienta, tak ten by měl možnost ve hře podvádět. Proto jsem si říkal, že by bylo fajn např. přes JS u klienta natáhnout požadovaná data z Instagram API a poslat je jako jeden balík na mou soutěžní API. Jenže taková data by opět šla podvrhnout.
2. 10. 2015 17:03:21
https://webtrh.cz/diskuse/instagramapi-lze-volat-client-side/#reply1140862
vpixle
verified
rating uzivatele
(3 hodnocení)
3. 10. 2015 02:57:51
S tim by na klientu nemel byt problem. Klienty si stahne fotky a vystavi nekolik linku na tvuj server a pouze neketere budou "spravne". Kdyz si s tim trochu pohrajes a ten javascript trochu zaobalis nemel by to normalni uzivatel lousknout. Rozhodne bys ale k sobe nemel ukladat cele fotky, ale treba jen pratele. Hodnoceni pak muzes udelat na zaklade nejakeho slozeneho hashe, ktery bude v parametrech toho URI. Server hash overi, vyhodnoti, prepise body a v callbacku vrati vysledek.
Bankovni prevod bych na tom nepostavil, ale takovouhle hricku klidne. Cele by se to mohlo vlezt do 50ti radku Javascriptu (ktery vmichas do jQuery) a pri trose stesti to par let vydrzi. Jinak fajn napad.
3. 10. 2015 02:57:51
https://webtrh.cz/diskuse/instagramapi-lze-volat-client-side/#reply1140861
Fido123
verified
rating uzivatele
(13 hodnocení)
3. 10. 2015 08:01:58
Tuhle serverovou záležitost přenášet na klienta je nesmysl. Jak to například ošetříš, když klient bude třeba mobil připojený přes EDGE?
A hlavně ty si celkem v ničem nepomůžeš, data budeš stahovat stejně, jenom od klienta místo od Instagramu. Těch pár GET požadavků není nic. Pokud tě trápí jejich vysoky počet v jeden okamžik, tak takové záležitosti se zpracovávají asynchronně. Při registraci uživatele se někde do databáze uloží úkol „stáhnout fotky od uživatele s id 007“ a až bude mít server „čas a náladu“, tak si ten úkol zpracuje.
3. 10. 2015 08:01:58
https://webtrh.cz/diskuse/instagramapi-lze-volat-client-side/#reply1140860
vpixle
verified
rating uzivatele
(3 hodnocení)
4. 10. 2015 19:03:48
@Bacon Tady mas demo vyberu fotek na klientovi.
instagram-searcher/main.js at master · populationtwo/instagram-searcher · GitHub…
Staci si kolem radku 9 zmenit URI dotazu. Nekde kolem radku 25 pak projedes cele to pole s vysledky. Pritom jak budes prepisovat odkazy na svuj server, pridas tam zamaskovanou spravnou a spatnou odpoved. Mimochodem ten samej kod prelozis do mobilu a mas z toho nativni aplikaci.
Napsal Fido123;1230420
Tuhle serverovou záležitost přenášet na klienta je nesmysl.
Co to je za zoufalej argument s tim EDGE? Takze misto aby si uzivatel stahoval fotky pomoci EDGE z nadopovanyho serveru Instagramu, bude si je pomoci EDGE stahovat z nejakeho VPS, nebo shared hostingu? ROFL
4. 10. 2015 19:03:48
https://webtrh.cz/diskuse/instagramapi-lze-volat-client-side/#reply1140859
Bacon
verified
rating uzivatele
(2 hodnocení)
4. 10. 2015 19:21:54
Wow, vpixle, tak ty jsi jiný pán! :) Díky moc za odkaz! :)
Fido123 docela chápu. Nejde ani tak o stahování samotných fotek, ale o ten vysoký počet GET požadavků. To jsem uváděl v prvním příspěvku. Při generování herního kola je nutno získat seznam follows uživatele (100 / požadavek), získat fotky náhodně vybraných uživatelů (20 fotek / požadavek / uživatel). Čistě teoreticky, pokud by takovou aplikaci v jednu chvíli použilo 100 lidí, tak to je hned klidně přes 1000 požadavků na externí API v jednu chvíli. A to se mi zdá moc.
Asynchronně to nejde, po stisknutí "Start" chci mít do pár vteřin přichystáno herní kolo. Cachovat se to taky moc nedá, z povahy věci.
4. 10. 2015 19:21:54
https://webtrh.cz/diskuse/instagramapi-lze-volat-client-side/#reply1140858
Fido123
verified
rating uzivatele
(13 hodnocení)
4. 10. 2015 19:33:35
Napsal vpixle;1230682
Co to je za zoufalej argument s tim EDGE? Takze misto aby si uzivatel stahoval fotky pomoci EDGE z nadopovanyho serveru Instagramu, bude si je pomoci EDGE stahovat z nejakeho VPS, nebo shared hostingu? ROFL
Myslím, žes nepochopil tohle vlákno. Bacon potřebuje stáhnout data o uživatelích (včetně fotek) k sobě na server a nikoliv na klienta. Tohle vlákno je o tom, že místo, aby ta data stahoval přímo, tak je chtěl nejprve nechat stáhnout na klienta a potom je měl klient odeslat na server, což má ovšem gazilion nevýhod. Zkus si když tak opětovně přečíst úvodní příspěvek, bude ti to jasnější.
EDIT: A nebo, koukám, jsem ho nepochopil já. Chceš ty fotky Bacone teda mít na serveru, nebo ne?
4. 10. 2015 19:33:35
https://webtrh.cz/diskuse/instagramapi-lze-volat-client-side/#reply1140857
Bacon
verified
rating uzivatele
(2 hodnocení)
4. 10. 2015 20:05:20
Fido123, chci stáhnout data o uživatelích a jejich fotkách (URL na JPG), ne samotné fotky (prostě jen ta JSON data).
4. 10. 2015 20:05:20
https://webtrh.cz/diskuse/instagramapi-lze-volat-client-side/#reply1140856
Fido123
verified
rating uzivatele
(13 hodnocení)
4. 10. 2015 20:17:06
Napsal Bacon;1230711
Fido123, chci stáhnout data o uživatelích a jejich fotkách (URL na JPG), ne samotné fotky (prostě jen ta JSON data).
Aha, tohle
Napsal Bacon;1226372
Dále chci získat fotky 10 - 20 lidí, které takto získám... To se rovná dalších 10 - 20 GET požadavků (a získám pouze posledních 20 fotografií od každého uživatele).
mě zmátlo. No tak či onak, to řešení tahat to přes klienta bych volil až jako poslední možnost, když už by to nešlo jinak. Fakt tomu nefandím.
4. 10. 2015 20:17:06
https://webtrh.cz/diskuse/instagramapi-lze-volat-client-side/#reply1140855
vpixle
verified
rating uzivatele
(3 hodnocení)
7. 10. 2015 01:45:57
Bacon Tady to mas uplne komplet, prihlasovani, vyhledavani proste vsechno co to API dokaze. 100% funkcni 100% bez serveru. https://github.com/ozdemirr/angular-instagram
Uzij si to ;)
7. 10. 2015 01:45:57
https://webtrh.cz/diskuse/instagramapi-lze-volat-client-side/#reply1140854
Bacon
verified
rating uzivatele
(2 hodnocení)
7. 10. 2015 01:49:10
Díky moc! :) Zrovna jsem si v noci dělal kurz AngularJS na CodeCademy, člověku, co AngularJS moc nezná, to navodí pocit, že je to mega easy, teď otázka, jak je to ve skutečnosti. Přečtu si to místo pohádky na dobrou noc. :)
7. 10. 2015 01:49:10
https://webtrh.cz/diskuse/instagramapi-lze-volat-client-side/#reply1140853
vpixle
verified
rating uzivatele
(3 hodnocení)
8. 10. 2015 09:56:15
NJN kdyz potrebujes napsat jednostrankovej dialog/formular tak je simple, ale jak zacnes navigovat routovat konzumovat API zacne se to dost zahustovat ;) Na druhou stranu to jsou veci ktere bys ve vanilla JS nebo jQuery nikdy ani nezkousel.
Pro me to byla enabling technology, protoze jsem nikdy nepristoupil na to ze bych mel programovat nejaky objekt popisujici obrazovku. Jako jsem nikdy nedal assembler (kdes rotacemi zasobniku nastavoval bity videoRAM) nedal jsem JS, ktery v roce 2007 programoval DOM.
Angular je takovej Turbopascal a to vcetne toho, ze kdyz pouzijes spatne schema (budes se snazit primo ovlivnovat DOM mimo direktivy) bud ti to rovnou cele spadne, nebo stravis mesice otloukanim cela o nejblizsi zed. Ale na te apce vidis, ze to ve finale dokaze byt velice efektivni.
8. 10. 2015 09:56:15
https://webtrh.cz/diskuse/instagramapi-lze-volat-client-side/#reply1140852
Pro odpověď se přihlašte.
Přihlásit