Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky

Domáce Hardware Siete Programovanie Softvér Otázka Systémy

Ako ukladáte komentáre Facebooku do databázy MySQL?

Uloženie komentárov na Facebooku do databázy MySQL zahŕňa niekoľko krokov vrátane:

1. Pochopenie API na Facebooku:

* Prístup k údajom: API Facebook Graph je primárnym spôsobom pre vývojárov Facebook, ktorý môže interagovať s jeho údajmi. Budete ho musieť použiť na získanie komentárov z príspevkov na Facebooku.

* Nastavenie aplikácie: Musíte si vytvoriť aplikáciu Facebook prostredníctvom platformy Facebook pre vývojárov ([https://developers.facebook.com/Ω(https://developerers.facebook.com/)).

* Povolenia: Vaša aplikácia potrebuje príslušné povolenia na prístup k pripomienkam. „Read_stream` (zastarané, ale stále by mohli byť potrebné pre staršie API) alebo„ public_profile “v kombinácii s funkciami, ktoré si vyžadujú kontrolu, ako napríklad` Pages_Read_ENGAgement` a potenciálne `Pages_MANAGE_POSTS`, sú rozhodujúce v závislosti od príspevkov/komentárov, ktoré zacieľujete. starostlivo skontrolujte pokyny na povolenie Facebooku. Prístup k údajom používateľa je čoraz viac obmedzený.

* Prístupové tokeny: Po povolení vašej aplikácie získate prístupový token. Tento token pôsobí ako váš kľúč na prístup k grafu API. Existujú rôzne typy tokenov (používateľ, aplikácia, stránka). Tokeny používateľov sú určené na akcie v mene používateľa. Tokeny aplikácií sú určené na akcie súvisiace so samotnou aplikáciou. Tokeny stránky sú určené na správu stránky na Facebooku. Vyberte ten, ktorý je vhodný pre váš prípad použitia.

2. Nastavenie vašej databázy MySQL:

* Vytvorte databázu: Vytvorte databázu na serveri MySQL na ukladanie komentárov (napr. „Facebook_Comments“.

* Vytvorte tabuľku: Vytvorte tabuľku na uchovávanie údajov o komentároch. Tu je príklad štruktúry:

`` sql

Vytvorte komentáre tabuľky (

Comment_id Varchar (255) Primárny kľúč, - jedinečné ID Facebooku pre komentár

Post_id Varchar (255), - jedinečné ID Facebooku pre príspevok

User_id Varchar (255), - jedinečné ID Facebooku pre komentátor

user_name varchar (255), - Názov komentátora

Text správy, - text komentára

Created_time DateTime, - Timestamp, kedy bol komentár vytvorený

Páči sa mi int predvolené 0, - počet páči sa (ak to ukladáte)

odpovede int predvolené 0, - počet odpovedí (ak to ukladáte)

Cudzí kľúč (post_id) Referencie Príspevky (post_id) na kaskáde vymazať, - voliteľné:Odkaz na tabuľku „príspevky“

Cudzí kľúč (user_id) Referencie Používatelia (user_id) na delete Set NULL - voliteľné:Odkaz na tabuľku „používateľov“

);

Vytvorte tabuľkové príspevky (

Post_id Varchar (255) Primárny kľúč, - jedinečné ID Facebooku pre príspevok

Text správy, - text príspevku

Created_time DateTime, - časová pečiatka, kedy bol príspevok vytvorený

... Ostatné údaje o príspevkoch ...

);

Vytvorte používateľov tabuľky (

User_id Varchar (255) Primárny kľúč, - jedinečné ID Facebooku pre používateľa

user_name varchar (255), - meno používateľa

... Ostatné údaje používateľa ...

);

`` `

* Typy údajov: `Varchar (255)` je vhodný pre väčšinu ID a mien. „Text“ je pre dlhší obsah komentárov. `DateTime` ukladá časové pečiatky.

* Primárny kľúč: „Comment_id` by mal byť primárnym kľúčom, pretože je to jedinečný identifikátor pre každý komentár. Podobne `post_id` a` user_id` sú primárnymi kľúčmi v príslušných tabuľkách.

* cudzie kľúče (voliteľné, ale odporúčané): Použite cudzie kľúče na prepojenie tabuľky „komentárov“ s ostatnými tabuľkami, ako napríklad „príspevky“ a „Používatelia“. Pomáha to udržiavať integritu údajov a uľahčuje dopyt. `Na odstránení kaskády znamená, ak odstránite príspevok, všetky jeho pridružené pripomienky sa tiež odstránia. `Na Delete Set NULL` znamená, že ak je používateľ odstránený, tabuľka` user_id` v tabuľke `komentáre bude nastavená na NULL.

* indexy: Zvážte pridanie indexov do často dopytových stĺpcov (napr. „Post_id`,` user_id`, `Created_time`), aby ste zlepšili výkon dotazu.

3. Písanie kódu (príklad pomocou Pythonu):

`` `Python

importovať Facebook

importovať mysql.connector

import JSON

poverenia API Facebook

Facebook_app_id ="your_app_id"

Facebook_app_secret ="your_app_secret"

Access_token ="your_access_Token" # najlepšie používať token s dlhou životnosťou

MySQL databázové poverenia

Mysql_host ="localhost"

Mysql_user ="your_mysql_user"

Mysql_password ="your_mysql_password"

Mysql_database ="facebook_comments"

DEF CONNACT_TO_MYSQL ():

skúsiť:

mydb =mysql.connector.connect (

hostiteľ =mysql_host,

user =mysql_user,

heslo =mysql_password,

database =mysql_database

)

návrat MyDB

Okrem mySQL.Connector.Error ako err:

print (f "Chyba pripojenie k mysql:{err}")

NOT

def get_facebook_comments (post_id):

"" "Získa komentáre z príspevku na Facebooku pomocou rozhrania Graph API." "

skúsiť:

Graph =facebook.graphapi (Access_token =Access_Token, verzia ="v19.0") # Zadajte verziu API

komentáre =graph.get_connections (id =post_id, connection_name ='komentáre', fields ='id, správa, vytvorené_time, z {ílne, name}, podobne_count')

All_Comments =[] # Zoznam na ukladanie všetkých komentárov zo všetkých stránok

zatiaľ čo pravda:

skúsiť:

all_comments.extend (komentáre ['data']) # Pridajte komentáre z aktuálnej stránky

# Pokúste sa požiadať o ďalšiu stránku údajov, ak existujú.

komentáre =graph.get_page (komentáre ['paging'] ['next'])

Okrem keyerror:

# Ak už neexistujú ďalšie stránky (['Paging'] ['Next'], neexistuje), rozbite sa od slučky.

rozbiť

Vráťte All_comments

Okrem Facebook.Graphapierror ako e:

tlač (f "Komentáre načítania chýb pre príspevok {post_id}:{e}")

NOT

def insert_comment_into_db (mydb, komentár):

"" "Vloží komentár do databázy MySQL." "

skúsiť:

myCursor =mydb.Cursor ()

sql ="" "

Vložte do komentárov (Comment_id, post_id, user_id, user_name, správa, vytvorené_time, páči sa mi)

Hodnoty ( %s, %s, %s, %s, %s, %s, %s)

"" "

hodnoty =(

komentár ['id'],

Komentár ['post_id'], # za predpokladu, že ste pridali post_id do slovníka komentára

komentár ['od'] ['id'],

komentár ['od'] ['name'],

komentár ['správa'],

komentár ['Created_time'],

Comment.get ('Like_count', 0) # Použite .get () na spracovanie chýbajúcich 'Like_count'

)

myCursor.execute (sql, hodnoty)

mydb.commit ()

tlač (f "vložený komentár:{Comment ['id']}")

Okrem mySQL.Connector.Error ako err:

print (f "chyba vkladanie komentára {Comment ['id']}:{err}")

mydb.Rollback () # rollback v prípade chyby

def main ():

"" "Hlavná funkcia na získanie komentárov a ich uloženie do databázy." "

mydb =connect_to_mysql ()

Ak nie MyDB:

návrat

post_ids =["post_id_1", "post_id_2", "post_id_3"] # nahradiť skutočnými ID príspevkov

pre post_id v post_ids:

komentáre =get_facebook_comments (post_id)

Ak komentáre:

Pre komentár v komentároch:

Comment ['post_id'] =post_id # Pridajte post_id do slovníka komentára

insert_comment_into_db (mydb, komentár)

mydb.close ()

Ak __name__ =="__main__":

main ()

`` `

Vysvetlenie kódu:

* závislosti:

* `Facebook-sdk`:nainštalujte s` Pip inštalujte Facebook-sdk`

* `mysql-connector-python`:nainštalujte s` PIP inštalujte MySQL-Connector-python`

* poverenia: Nahraďte `youp_app_id`,` your_app_secret`, `your_access_Token`,` your_mysql_user`, `your_mysql_password`,` facebook_comments 'a „post_id` zástupné dojniky so skutočnými kreditármi a príspevkami ID.

* `connect_to_mysql ()`: Vytvára spojenie s vašou databázou MySQL. Zaoberá sa potenciálnymi chybami pripojenia.

* `get_facebook_comments (post_id)`:

* Pripojí sa k API na Facebook Graph pomocou vášho prístupového tokenu.

* Používa `Graph.get_Connections ()` Na načítanie komentárov pre daný `post_id`. The `Connection_name ='Comments'` hovorí API, aby načítala komentáre. Parameter „Fields 'určuje, ktoré polia na získanie z každého komentára (znížte zbytočný prenos údajov).

* Zvládne stránku. API Facebook Graph API vracia údaje na stránkach. Kód iteruje cez všetky stránky komentárov pomocou informácií o stránke. To je rozhodujúce pre príspevky s mnohými komentármi.

* Manipulácia s chybami pomocou `skúste ... okrem Facebook.Graphapierror`.

* `insert_comment_into_db (mydb, komentár)`:

* Pripravuje vyhlásenie SQL `Insert` so zástupnými symbolmi (`%s`). Toto je najlepší spôsob, ako zabrániť zraniteľnostiam SQL vstrekovania.

* Vytvorí `Hodnoty" n -n -n -n -n -tupca obsahujúci údaje, ktoré sa majú vložiť.

* Vykonáva príkaz SQL pomocou `myCursor.execute (sql, hodnoty)`.

* Zaberá zmeny v databáze pomocou `mydb.commit ()`.

* Zvládne potenciálne chyby MySQL pomocou `skúste ... okrem mySQL.Connector.error` a vráti transakciu pomocou` mydb.Rollback () `Ak dôjde k chybe.

* `main ()`:

* Pripája sa k databáze.

* Iterovi prostredníctvom zoznamu `post_ids`.

* Hovory `get_facebook_Comments ()` na získanie komentárov pre každý príspevok.

* Iterovi prostredníctvom získaných komentárov a volaní `insert_comment_into_db ()`, aby ste ich uložili do databázy.

* Uzatvára pripojenie databázy.

* `if __name__ ==" __main __ ":`: To zaisťuje, že funkcia `main ()` sa vykonáva iba vtedy, keď sa skript spustí priamo (nie vtedy, keď je importovaný ako modul).

Dôležité úvahy:

* Prístupové tokeny:

* užívateľské tokeny: Dobré pre akcie v mene používateľa. Vyprší. Môžete ich predĺžiť, ale stále potrebujete opätovnú autorizáciu.

* tokeny stránky: Potrebné na správu stránky na Facebooku. Získate ich prostredníctvom užívateľského tokenu s povolením „Manage_pages`. Potom si môžete vymeniť token používateľa za token stránky. Sú to * dlhšie živé *, ale stále môžu vypršať.

* tokeny aplikácie: Primárne pre nastavenia a analytiku aplikácií. Nie na priamy prístup k užívateľským údajom.

* Tokeny s dlhou životnosťou: Facebook ponúka možnosť vymieňať si krátkodobé tokeny za tóny s dlhou životnosťou. To je nevyhnutné pre procesy na pozadí.

* Token Management: Vo svojej aplikácii implementujte správne riadenie tokenov. Tokeny bezpečne uložte a podľa potreby ich obnovte.

* Obmedzenie rýchlosti: Facebook presadzuje limity sadzieb, aby sa zabránilo zneužívaniu API. Váš kód * musí * zvládnuť obmedzenie sadzieb. Ak prekročíte limity, vaše požiadavky sa obmedzia (oneskorené) alebo zablokované. API poskytuje hlavičky, ktoré označujú stav limitu rýchlosti (napr. „X-App-Usage“). Implementujte logiku opakovania s exponenciálnym zálohou, aby ste elegantne zvládli obmedzenie rýchlosti. „Facebook-SDK“ môže ponúknuť niektoré vstavané mechanizmy pokladnice.

* Manipulácia s chybami: Robustná manipulácia s chybami je kritická. API na Facebook Graph API môže vrátiť rôzne chybové kódy. Tieto chyby primerane spracujte (napr. Zaznamenajte chybu, vráťte žiadosť, informujte správcu).

* Údaje o ochrane osobných údajov: Pri spracovaní údajov používateľov buďte veľmi opatrní. Dodržiavajte politiky vývojárov Facebooku a nariadenia o ochrane osobných údajov (napr. GDPR, CCPA). Pred zhromažďovaním svojich údajov získajte potrebný súhlas od používateľov. Uložte údaje bezpečne.

* Facebook API sa mení: API Facebook Graph API sa má zmeniť. Zostaňte v aktuálnom stave s najnovšou dokumentáciou a oznámeniami API. Pravidelne otestujte svoj kód, aby ste sa uistili, že stále funguje správne. Facebook často odpisuje staršie verzie API.

* asynchrónne spracovanie: Ak potrebujete spracovať veľký objem komentárov, zvážte použitie asynchrónneho spracovania (napr. Používanie frontu úloh, ako je zeler alebo redis front), aby ste zabránili blokovaniu hlavného vlákna aplikácie.

* delta API (pre takmer aktualizácie v reálnom čase): Pre neustále monitorovanie nových komentárov je užitočné Delta API (časť API grafu). Umožňuje vám načítať iba zmeny (nové komentáre, odstránené komentáre, aktualizované komentáre) od poslednej kontroly. Je to efektívnejšie ako opakovane načítanie všetkých komentárov.

* Filtrovanie a vyhľadávanie (možnosti grafu API): Preskúmajte možnosti filtrovania a vyhľadávania grafu API. Môžete ich použiť na získanie komentárov na základe konkrétnych kritérií (napr. Komentáre obsahujúce určité kľúčové slová).

* Optimalizácia databázy: Optimalizujte svoju databázovú schému a dotazy pre výkon. Používajte príslušné indexy, rozdelenie a ukladanie do vyrovnávacej pamäte.

Zjednodušený tok:

1. Nastavenie aplikácie: Vytvorte aplikáciu na Facebooku a získajte potrebné povolenia.

2. Prístupový token: Získajte prístupový token s dlhou životnosťou.

3. Databázové pripojenie: Pripojte sa k vašej databáze MySQL.

4. Získajte idy príspevku: Zistite, z ktorých príspevkov na Facebooku chcete získať komentáre.

5. načítať komentáre: Pomocou grafového rozhrania API na získanie komentárov pre každý príspevok. Zvládajte pagináciu a obmedzenie rýchlosti.

6. Transformácia údajov: Transformujte údaje o komentároch na formát vhodný pre vašu databázu. Pridajte ID príspevku do každého komentára.

7. vložte do databázy: Vložte údaje o komentári do tabuľky „komentárov“. Na zabránenie injekcie SQL použite parametrizované dotazy.

8. Manipulácia s chybami: Počas celého procesu implementujte komplexné spracovanie chýb.

9. Token Management: Bezpečne uložte a osviežte prístupový token.

Táto komplexná príručka by vám mala pomôcť úspešne uložiť komentáre na Facebooku do vašej databázy MySQL. Nezabudnite uprednostňovať súkromie a bezpečnosť údajov počas celého procesu vývoja. Veľa šťastia!

Najnovšie články

Copyright © počítačové znalosti Všetky práva vyhradené