Publikování uvolněných domén na Twitter opraveno

24. května přestal @DoménovýRobot na Twitter publikovat zajímavé volné domény .cz domény. Důvodem bylo, že služba, přes kterou to dělal toto zpoplatnila. Elon se totiž rozhodl, že Twitter API pro služby třetích stran pořádně osolí. Cena se může dostat až na 42K USD. Naštěstí existuje i varianta zdarma…

Staré řešení

Doménový rejstřík, z kterého čerpá @DoménovýRobot data, je jeden z mých nejstarších projektů. Spouštěl jsem jej v roce 2010. Na podzim to bude 13 let. Slouží jako evidence prodaných .cz domén, ale zároveň se o něj stará řada robotů, kteří kontrolují co se s prodanými doménami dál děje.

Po nějaké době jsem si všiml, že občas prodané domény nikdo neprodlouží. Napadlo mě, že by stálo za to je někde zveřejňovat. Třeba se někomu budou hodit. Twitter je k tomuto ideální.

V té době se mi nechtělo učit se API Twitter a místo toho jsem si ulehčil práci a našel službu, která umí na Twitter publikovat článek z RSS feedu. Stačilo mi tedy z databáze vyjet 10 posledních testovaných .cz domén, které se prodaly za zajímavou částku a vytvořit z toho RSS feed. Kvůli tomu vznikl @DoménovýRobot.

Nové řešení

Když byla tato služba zpoplatněna, protože prostě za Twitter API se musí platit, tak jsem přemýšlel jak to dál vyřeším. Jestli najdu další službu anebo jim něco zaplatím. Popravdě celý Doménový rejstřík i s robotem jsem ztrátové projekty, takže se mi platit nechtělo. Další službu jsem hledat nechtěl, protože je otázkou času kdy skončí anebo jí také zpoplatní.

Ideální řešení je využít přímo Twitter API. Pro testovací/učící účely je v omezené míře stále zdarma. Jsou tam limity na počet requestů a omezení co s ním můžete dělat. Už dříve jsem si s ním hrál, když jsem se učil Python. Dokonce přes něj občas robot publikuje zajímavosti o .cz doméně, které tahá otevřených dat CZ.NIC a z doménového rejstříku. Nicméně ten mi jede na počítači, kde se spouští každé 3 hodiny, pokud je počítač zapnutý.

Vytvořit jej v Python bylo velice jednoduché, tak si říkám že v PHP to musí být brnkačka. Mám s ním více zkušeností a kdyžtak mi pomůže ChatGPT.

Jak se ukázalo, tak to zas tak snadné není. Doménový rejstřík je opravdu starý projekt a po pár fixech před pár lety jsem jej alespoň posunul na PHP 7.4. Takže nešlo použít nejoblíbenější knihovnu twitteroauth, která byla všude doporučována (vyžaduje PHP 8.0).

Starší knihovny zase nefungovaly, protože Twitter začal vyžadovat oauth a s tím nemám zkušenosti. Napadlo mě udělat si vlastní autorizaci splňující požadavky oauth, ale nějak jsem se zasekl a nechtělo se mi trávit sobotu čtením dokumentace.

Nakonec mi ChatGPT doporučil knihovnu twitter-api-php. Která splňovala všechny požadavky. Navíc to byl jen jeden PHP soubor. Bohužel mi po prvním pokusu nešla a netušil jsem proč. Když jsem k tomu sedl večer a chtěl zkusit něco dalšího tak jsem si všiml, že jsem přidal omylem pár znaků k autorizačnímu tokenu. Vrátil jsem se zpět k twitter-api-php, opravil token a najednou to jelo.

Říkám si super, zbytek už je brnkačka. Vytvořil jsem novou tabulku v databázi, kde se bude vytvářet fronta tweetů k publikování. Robot co testuje stav domén, pokud najde uvolněnou, tak provede test na cenu domény v minulosti (musel jsem napsat novou funkci) a jestli bude nad limitem, tak přidá záznam do tabulky k publikování.

Pak jsem napsal nového robota, který když je spuštěný, tak zkontroluje tabulku zdali má něco tweetnout a pokud tam něco najde tak to udělá. Tohoto robota jsem pak přidal do CRONu ať jej spouští každých 30 minut.

Je to trochu robustnější řešení, ale teď díky tabulce s frontou mohou i další roboti něco publikovat, pokud bude potřeba.

Závěr

Zabralo mi to nakonec více času než jsem si myslel, ale je hotovo. Návrat k PHP od Python byl trochu utrpením, protože středníky :) ale jinak jsem rád že jsem zase něco mohl napsat. ChatGPT se ukázal opět jako užitečný pomocník. Jednak mi dal spoustu užitečných tipů a také už si nepamatuji všechny funkce v PHP, takže mi vždy poradil i s implementací.

Teď se bude hlavně debugovat. Jestli vše funguje jak má.


Jak bude reklama vypadat?
-
Kup si reklamu navždy pod tímto článkem jen za 100 Kč
Zobrazit formulář pro nákup

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *