ActivityPub-ը ամենակայֆ բաննա
2026-06-18 12:36:45.596453+00
գոյություն ունեն տարբեր տեսակի բաց ու փակ պրոտոկոլներ, որոնց միջոցով հավելվածները իրար հետ շփվում են - էլ զռլամա OStatus-ը, էլ ActivityPump-ը, էլ պրոպրիետար զիբիլները որոնք կիրառվում են հանրահայտ սոց․ ցանցերում։ սակայն ActivityPub-ը այս պրոտոկոլների գազանանոցից տարբերվումա իր․․․ հեշտությամբ։
ու հեշտության մեջ ներառվումա այս պրոտոկոլի հեշտ հավաքելը, որի համար ձեզանից պահանջվում է ընդամենը աչքի ծերով կարդալ այս պրոտոկոլի սպեցիֆիկացիան ու վերջ։ անգամ ամենաբլած կայքում (որտեղ Դուք գտնվում եք) կարելիա հեշտ ու հանգիստ միացնել լոկալ ցանց, որը ActivityPub-ի միջոցով կտեսնի բոլորին, այդ թվում Mastodon-ով ու Pixelfed-ով գրանցված օգտատերերին։
երկու բառով պրոտոկոլի մասին
սին պրոտոկոլը աշխատում է բավականին պարզ․ ամեն մասնակից ճանաչում է Ձեզ ըստ Ձեր վեբ մատնահետքի - այն ունիվերսալ փոխակերպվող տվյալ է, ըստ որի հարցում է կատարվում դեպի կայք որտեղ Դուք գրանցված եք։ եթե կայքը վերադարձնում է համապատասխան եզրերը, ուրեմն շնորհավոր - Դուք երևում եք ActivityPub-ով։
եզրերը (ու առհասարակ վեբ մատնահետքերը) իրենց հերթին հատուկ կազմակերպված JSON-ներ են, որոնք պարունակում են ստանդարտացված տվյալներ, որոնք պարտադիր պետք է բռնեն https://www.w3.org/ns/activitystreams սպեցիֆիկացիայի հետ։ այն է ներկայացնում տվյալների կառուցվածքը, որը պետք է ստանալ։
դե իհարկե կապը դերասանների, որոնք կոչվում են actor, միջև տեղի է ունենում օբյեկտների (Objects) պարունակությամբ, որոնք էլ նամակներն են, մեջները կան տեքստ, մեդիա, ռեպոստ, բաժանորդագրություն և այլն։ ու այդ ամենը համակարգված փոխակերպվում է ֆեդերացիաների միջև։
թարմացումներն էլ հասցվում են <<ՀայՓոստ>>-ի սկզբունքով. արեցի՞ր գործողություն, օրինակ գրեցիր քո դարդերը գրառման մեջ ու հրապարակեցիր բոլորին, ուրեմն պետք է թարմացումներդ հասցնես դեպի ֆեդերացիա հարցումների միջոցով։ ֆեդերացիաները որպես ստացողներ կվերցնեն այդ ամեն ինչը և իրենց մոտ լոկալ կմշակեն դրանք, ցուցադրելով բաժանորդներին քո գրածները։ այդպես նաև տարվում են օգտատերի մասին տեղեկատվության թարմացումները և բոլոր-բոլոր գործողությունները։
եթե ամփոփենք կառուցվածքը կարճ նախադասությամբ - մենք դերասաններ ենք, իսկ թատերաբեմը սերվերներն են որոնք իրար մեջ շփվում են ActivityStreams-ի ստանդարտներով :)
ո՞նց սարքեցի
նախ և առաջ ես փորձեցի հույսս դնեմ պատրաստի լուծումների վրա․ քանի որ այս կայքը գրված է php-ով, ես որոշեցի շատ սար ու ձոր չընկնեմ ու ոգեշնչվեմ Սայմոն Վիլսոնի արածով: թեպետ և այստեղից ես հասկացա որոշակի բաներ պրոտոկոլի մասին, բայց սա ինձ համար բավական չէր։ համարյա թե զրոյից որոշեցի գրել պարզ դաս, որը կգործի եղած կայքի բեքի հետ, ու այդտեղի գրառումները կարտացոլի բոլորին։
Դուք ձեռքով կարող եք այցելել հետևյալ հղումներով, որոնք կենսական են ActivityPub-ի համար․
- https://lmd.vg/.well-known/webfinger?resource=acct:[email protected],
- https://lmd.vg/.well-known/nodeinfo
ինչու՞ հենց այս երկուսը․
առաջինը հանդիսանում է Ձեր վեբ-մատնահետքը, ըստ որի ActivityPub-ով աշխատող կայքերը կարողանում են ճանաչել Ձեզ ու ստանալ համապատասխան վերջնակետեր Ձեր մասին տեղեկատվություն քաշելու համար։ առաջնահերթ սա պարտադիր է ունենալը, այլապես առռը հա թե Դուք կերևաք որևէ Fedi-ներում։
իսկ երկրորդը պետք է ֆեդերացիաներում ներկայանալու համար։ սրանով արդեն ներկայացվում է ետին պատկերը, թե ինչպիսի node-րի տարբերակներ եք սպասարկում և ոնց եք ներկայանում, որպես ինչ։ այս "չքնաղ" կայքում նոդը ճանաչվում է որպես Aniverse, ուստի կարելի է ինչ-որ տեղ համարել որ մենք զրոյից Mastodon ենք գրում :)
մինուսներ
ներկայիս իմպլեմենտացիան ունի ընդամենը երկու մինուս․
- ես ձեռքով պետք է հասցնեմ թարմացումները ամեն դերասանի, որպեսզի հնարավոր լինի բոլորին ցույց տալ նոր գրառումները, գործողությունները և այլ բաները, քանզի ամեն մի թարմացում պետք է <<ՀայՓոստ>> արվի բոլորին։ դրա համար սերվերից ես բացում եմ հրաման որպեսզի հասցնեմ բոլոր հասանելի ֆեդերացիաներին, դա պետք է ավտոմատիզացնել ամեն գործողության ժամանակ,
- ոչ ամեն ֆեդերացիա կարող է տեսնել մեզ միանգամից․ այո, որպեսզի նոր օգտատերը հաշվառվի որևէ ֆեդերացիայում, պետք է այդտեղ ունենալ գրանցված օգտատեր ու այդպես ձեն տալ օգտատերին։ այդպես ես հաշվառել եմ իմ նոր հաշիվը անքուն.հայ-ում, և խորհուրդ կտամ Դուք էլ անեք դա)))
վերջաբան (համենայն դեպս հիմա)
քանի որ ես աշխատանքի եմ ու սա վռազ-վռազ եմ գրել, սպասեք որ ես այստեղ կատարելու եմ թարմացումներ ու ավելի մանրամասն եմ բացատրելու սպեցիֆիկացիայի աշխատանքը
բաժանորդագրվեք նաև @[email protected] -ին, սա է իմ այստեղի պաշտոնական հաշիվը :)