AMcoder - javascript, python, java, html, php, sql

Twitter-ի, Facebook-ի և այլ ծառայությունների ինտեգրում մեկ կայքում

Ես պետք է մշակեմ մի ծրագիր, որը պետք է օգնի ինձ ստանալ բոլոր կարգավիճակը, հաղորդագրությունները տարբեր սերվերներից, ինչպիսիք են Twitter-ը, facebook-ը և այլն իմ հավելվածում, ինչպես նաև, երբ ես հաղորդագրություն եմ տեղադրում, այն պետք է թարմացվի բոլոր ծառայություններում: Ես օգտագործում եմ autlogic-ը նույնականացման համար: Որևէ մեկը կարո՞ղ է ինձ առաջարկել, թե ինչ գոհարներ/պլագ-իններ կարող եմ օգտագործել:

Ինձ API-ի օգնություն է պետք, որպեսզի ստանամ բոլոր թվիթները/հաղորդագրությունները, որոնք կցուցադրվեն իմ հավելվածում, ինչպես նաև հաղորդագրությունները համապատասխան ծառայություններին փակցնելու եղանակներ՝ դրանք տեղադրելով իմ հավելվածից: Որևէ մեկը կարող է օգնել ինձ դիզայնի տեսանկյունից:


Պատասխանները:


1

Քայլեք այն ամենի միջով, ինչ կցանկանայիք անել ձեր գլխում: Պատկերացրեք աշխատանքային կայքը, պատկերացրեք, որ ձեր վեբ հավելվածն աշխատում է նախքան սկսելը: Այսպիսով, ձեր օգտատերը մուտք է գործում (կառավարվում է autlogic-ով) և տեսնում է «Ի՞նչ եք անում հիմա»: Օգտագործողը լրացնում է կարգավիճակի հաղորդագրությունը և սեղմում «տեղադրել»: Կարգավիճակի հաղորդագրությունը հայտնվում է նրանց նախկինում տեղադրված հաղորդագրությունների վերևում:

Սկսեք հեշտ մասից: Ստեղծեք դաս, որը տեղադրում է երկու ծառայություններ: Օգտագործեք twitter gem-ը և rfacebook-ը՝ արդեն սահմանված երկու ծառայություններում գրառումներ անելու համար: Ապագայում դուք կցանկանաք թույլ տալ, որ օգտատերը կապի ծառայություններն իր հաշվին, և դուք կկրկնեք համապատասխան ծառայությունների միջոցով և կուղարկեք հաղորդագրությունը յուրաքանչյուրին: Այս գործառույթն աշխատելուց հետո կարող եք մի փոքր վերափոխել կամ փայլեցնել միջերեսը՝ այս հատկությունը լրացնելու համար: Ես անձամբ մինչև վերջ կանեի «սոցիալական մեդիայի հաշիվ ավելացնել իմ պրոֆիլին» գործառույթը:

Ավելի դժվար է տվյալների ընթերցումը (տարօրինակ կերպով), քանի որ դուք ստիպված կլինեք պարզել, թե ինչպես դրանք պահել: Դուք ոչինչ չեք կարող պահել, բայց ես կասկածում եմ, որ դուք կբախվեք API-ի սահմանափակումների մեջ, պարզապես անընդհատ որոնելով (կարող է նախագծվել դրա շուրջ): Ես կպահեի գրառումների մի փոքր քեշ՝ կապված օգտատիրոջ սոցիալական մեդիայի հաշվի հետ: Այս կերպ տվյալների մոդելը կունենա հետևյալ տեսքը.

A user has many social media accounts.
A social media account has many posts. (cache)

Իհարկե, այժմ պետք է պլանավորել գրառումների քեշավորումը։ Սա կարող է կատարվել ձեռքով, հիմնվելով իրադարձության վրա (օրինակ, երբ նրանք մուտք են գործում) կամ ժամանակի վրա հիմնված: Այսպիսով, երբ թարմացումը տեղի ունենա, դուք բեռնում եք գրառումները սոցիալական մեդիայի այդ հաշվի համար, և օգտվողը կտեսնի գրառումները հաջորդ անգամ, երբ նրանք կհայտնվեն էջին: Հաճախորդի զննարկիչին իրական ժամանակում սեղմելու համար, մինչ նրանք նայում են էկրանին, օգտագործեք faye (ոչ տրիվիալ) և ajax՝ նոր գրառումները տեղափոխելու սոցիալական մեդիայի հոսքի տեսքի վերև:

Ժամանակի վրա հիմնված տարբերակը բարդ է, քանի որ դուք կամ պետք է աշխատեք, կամ ռելսերը կարգավորեն այդ ամենը ժամացույցի մեխանիզմի նման գոհարով: Բայց հետո դուք պետք է հեռանաք ռելսերից: Ես նաև լուծել եմ դա՝ դասը /lib-ում ունենալով ամբողջ աշխատանքը, և պարզ վեբ զանգը սկսում է թարմացումը: Բայց դա բազմաֆունկցիոնալ օգտագործման դեպքում չէր: Այնպես որ, դա կարող է չաշխատել: Ամեն դեպքում, դուք կցանկանաք այս խնդիրների համար ունենալ մի քանի գեղեցիկ կոդ, քանի որ թարմացման հարցումները կարող են լինել տարբեր աղբյուրներից:

Դուք նաև ստիպված կլինեք գործ ունենալ API-ի սահմանափակումների հետ: Թվիթերից բովանդակությունը հանելիս ամեն ինչ չեք ստանա: Դա պարզապես պետք է իմանա օգտագործողի կողմից, կամ դուք պետք է ինչ-որ կերպ նշեք «ժամանակի ընդմիջում»:

UI-ը պետք է լինի բավականին հեշտ (միևնույն է, ֆունկցիոնալ առումով), քանի որ դուք գիտեք, թե որ աղբյուրից է ստացվում գրառումը/բովանդակությունը: Հեշտ կլինի գրառման կողքին մի փոքրիկ պատկերակ գցել՝ ցույց տալու համար, թե որ սոցիալական մեդիայից է այն:

Ամեն դեպքում, հաջողություն, հնչում է որպես զվարճալի նախագիծ:

19.10.2011
  • Ողջույն, հիանալի պատասխան, նույնիսկ եթե այն 5 տարեկան է: Ես աշխատում եմ խառը սոցիալական մեդիայի հոսքի վրա և կցանկանայի լրացուցիչ հարց տալ այս թեմայի վերաբերյալ. Միշտ խորհուրդ կտա՞ք պահպանել բոլոր գրառումները (ասենք որպես JSON ֆայլ fb-ից, twitter-ից, vine-ից և youtube API-ներից) ինքնուրույն: նախ սերվերը, թարմացրու այն Cronjob-ով և մուտք գործիր այն տեղական ֆայլը, փոխանակ Ajax-ի հարցումները տարբեր ցանցային API-ներին ուղարկելու փոխարեն, երբ օգտատերը բացում է կայքը: Կարո՞ղ եմ պատկերացնել, որ առաջին տարբերակը շատ ավելի արագ է, ճիշտ է: 22.05.2016
  • Դուք կարող եք օգտագործել քեշը դրա համար՝ այն որպես ֆայլ մտածելու փոխարեն: Եթե ​​դուք իսկապես ցանկանում եք սպասարկել թարմացվող բովանդակությունը (ձեր սերվերից): Քեշավորման խնդիրը (ինչպես դուք ակնարկում եք cron գաղափարի հետ կապված) այն թարմ պահելն է կամ իմանալը, թե երբ այն ջնջել: Cron-ն ունի իր սեփական խնդիրները (դա ժամացույց է, և ժամացույցը շատ անգամ իրադարձությունների լավ չափանիշ չէ), օրինակ, ձեր սոցիալական ցանցի թարմացվող ծառայությունը կարող է ցանկանալ լինել ամենավերջին բաները, բայց հետո այն իրեն պահում է ինչպես ամենավերջին բաները, քանի որ ես թարմացվել է մեկ ժամ առաջ, RSS-ով, գուցե այլ տարբերակ չկա: 25.05.2016
  • Ես տեսնում եմ, բայց եթե ես պահեմ բոլոր տվյալները նախ իմ սեփական սերվերում, ես կարող եմ վերացնել բոլոր տարբեր API-ներ մուտք գործելու լրացուցիչ հետաձգումը, երբ էջը բեռնվի: Ճիշտ? Ես գիտեմ, որ Cronjob-ը իրականում ի վիճակի չէ իրական ժամանակում Livefeed ապահովել, բայց հօգուտ կատարողականի, կարծում եմ, որ օգտագործողի փորձը կբարելավվի: Կամ կա՞ որևէ այլ միջոց՝ հավասար կատարման/արագության հասնելու համար: Ես այնքան էլ ծանոթ չեմ քեշավորմանը, բայց կա՞ տարբերակ բեռնելու միայն փոխված նոր նյութերը և թարմացնելու այն այդ Քեշում: Ի՞նչ է նշանակում Users Browsercache-ը և ոչ մի բան սերվերի կողմից, այնպես չէ՞: ՇՆՈՐՀԱԿԱԼՈՒԹՅՈՒՆ 26.05.2016
  • Կան բրաուզերի տվյալների պահոցներ, բայց ես հավանաբար կքեշավորեի դրանք սերվերի վրա: Կարծում եմ, դուք կարող եք ստեղծել ամբողջովին առանց սերվերի հավելված, որը դա կանի, բայց այնուհետև պետք է անհանգստանաք հիշողության սահմանափակումների և բրաուզերի կատարողականի մասին: Բացի այդ, բրաուզերի տվյալների պահեստները, որոնք ես օգտագործել եմ, ուղղակիորեն համեմատելի չեն սերվերի կողմից: Նրանք իմ փորձով շատ ավելի պարզ են եղել, բայց ես SPA/javascript հեղինակություն չեմ: 27.05.2016
  • Լավ, շատ շնորհակալ եմ ձեր օգնության համար: Միայն մի վերջին հարց. Եթե ես օգտագործում եմ JSON ֆայլեր իմ սեփական սերվերում և մուտք եմ գործում դրանք էջի բեռնման ժամանակ հաճախորդի կողմից՝ տեսքը ստեղծելու համար, ես կարող եմ խուսափել, որ օգտվողը տեսնի քեշավորված հնացած էջերը: Ես տեսնում եմ, որ սերվերի վրա http քեշի օգտագործումը ավելի լավ և արագ տարբերակ կլինի ստատիկ էջեր տրամադրելու համար, բայց ինչպե՞ս կարող եք համոզվել, որ օգտվողը պարզապես ստանա քեշավորված տեսքը, երբ նոր բովանդակություն չկա: Կամ ստանալ նոր բովանդակություն, երբ դա անհրաժեշտ է: Եվ եթե հաճախորդը պետք է իրոք հաճախակի մուտք գործի նոր բովանդակություն, մի՞թե քեշը չի գերազանցի JSON ֆայլեր մուտք գործելը կատարողականով: 30.05.2016
  • Ստեղծեք Ruby դաս, որը կոչվում է FeedCache, որն իրականացնում է ձեր ուզած կանոնները: Մի օպտիմիզացրեք կատարողականի համար, քանի դեռ չեք կատարել առնվազն մեկ չափանիշ: Ստեղծեք աբստրակցիա (դաս, որը կոչվում է ինչ-որ բան ձեր խնդրի շուրջ) ֆայլերի և ցածր մակարդակի մանրամասների վերևում: 31.05.2016
  • Նոր նյութեր

    Օգտագործելով Fetch Vs Axios.Js-ը՝ HTTP հարցումներ կատարելու համար
    JavaScript-ը կարող է ցանցային հարցումներ ուղարկել սերվեր և բեռնել նոր տեղեկատվություն, երբ դա անհրաժեշտ լինի: Օրինակ, մենք կարող ենք օգտագործել ցանցային հարցումը պատվեր ներկայացնելու,..

    Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար
    Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար Ինչպե՞ս հանգստացնել ձեր միտքը և աշխատեցնել ձեր պրոցեսորը: Ինչպես մնալ հանգիստ և զարգանալ ճնշման տակ...

    Մեքենայի ուսուցում բանկային և ֆինանսների ոլորտում
    Բարդ, խելացի անվտանգության համակարգերը և հաճախորդների սպասարկման պարզեցված ծառայությունները բիզնեսի հաջողության բանալին են: Ֆինանսական հաստատությունները, մասնավորապես, պետք է առաջ մնան կորի..

    Ես AI-ին հարցրի կյանքի իմաստը, այն ինչ ասում էր, ցնցող էր:
    Այն պահից ի վեր, երբ ես իմացա Արհեստական ​​ինտելեկտի մասին, ես հիացած էի այն բանով, թե ինչպես է այն կարողանում հասկանալ մարդկային նորմալ տեքստը, և այն կարող է առաջացնել իր սեփական արձագանքը դրա..

    Ինչպես սովորել կոդավորումը Python-ում վագրի պես:
    Սովորելու համար ծրագրավորման նոր լեզու ընտրելը բարդ է: Անկախ նրանից, թե դուք սկսնակ եք, թե առաջադեմ, դա օգնում է իմանալ, թե ինչ թեմաներ պետք է սովորել: Ծրագրավորման լեզվի հիմունքները, դրա..

    C++-ի օրական բիթ(ե) | Ամենաերկար պալինդրոմային ենթաշարը
    C++ #198-ի ամենօրյա բիթ(ե), Ընդհանուր հարցազրույցի խնդիր. Ամենաերկար պալինդրոմային ենթատող: Այսօր մենք կանդրադառնանք հարցազրույցի ընդհանուր խնդրին. Ամենաերկար palindromic substring...

    Kydavra ICAReducer՝ ձեր տվյալների ծավալայինությունը նվազեցնելու համար
    Ի՞նչ է ICAReducer-ը: ICAReducer-ն աշխատում է հետևյալ կերպ. այն նվազեցնում է նրանց միջև բարձր փոխկապակցված հատկանիշները մինչև մեկ սյունակ: Բավականին նման է PCAreducer-ին, չնայած այն..