Zephyrnet-logo

Uw eigen boekhoudkundige Telegram-bot met Python

Datum:

Foto door Eric Tompkins on Unsplash

Ik ga Google Drive gebruiken om de spreadsheet op te slaan. Ik heb ervoor gekozen om dat te doen omdat ik er overal toegang toe heb als dat nodig is. Het houdt ook uw gegevens veilig en u hoeft zich geen zorgen te maken over lokale bestanden. Daarom heeft u een Google-account nodig. Als je dat nog niet hebt gedaan, moet je dat doen creëer er een.

Om het Python-script aan uw Google-account te koppelen, moet u de Google Drive / Sheets API inschakelen. Deze video op YouTube oppompen van Tech met Tim legt het proces perfect uit, dat samengevat is:

  1. Maak een spreadsheet en vul enkele cellen in, die gaan we gebruiken om te testen. Geef het een goede naam.
  2. Ga naar Google Cloud-console en maak een nieuw project.
  3. Schakel Google Drive API in, setting webserver toegang, lezen toepassingsgegevensmet Project> Rol van editor​ Zorg ervoor dat u uw inloggegevens downloadt in JSON-indeling en bewaar deze in uw projectmap (bewaar deze veilig!).
  4. Schakel Google Sheets API in.

Om er zeker van te zijn dat het script en je blad goed spelen, kunnen we wat testen in Python. Het eerste dat u moet doen, is enkele bibliotheken installeren om met uw pas gemaakte spreadsheet te communiceren:

pip installeer gspread
pip installeer gspread-dataframe
pip installeer oauth2client

Nu kunt u al dingen proberen zoals het downloaden van gegevens van uw blad, de gegevens bewerken en opnieuw uploaden om het blad bij te werken:

Nu wil je wat gegevens in je blad zetten om het uit te testen:

En ga dan naar je creds.json-bestand en zoek naar de "client_email". Dat is uw toegewezen adres in Google Drive API. Deel het blad dat u met die e-mail heeft gemaakt:

Nu kunt u uw client in Python initialiseren en verbinding maken met het blad:

We krijgen de gegevens in een dataframe, omdat dit later zal helpen wanneer we rijen gaan manipuleren. Het dataframe ziet er als volgt uit:

 Datum Type Beschrijving Prijs
0 30 / aug / 2020 Afhalen 11.0
1 31 / aug / 2020 Transport Benzine 42.1
2 1 / Sep / 2020 Voedsel Boodschappen 56.5
3 2 / Sep / 2020 Food Burger 13.0
4 3 / Sep / 2020 Kleding T-shirt 19.5
5 NaN NaN NaN NaN
6 NaN NaN NaN NaN
7 NaN NaN NaN NaN
8 NaN NaN NaN NaN

Nu worden al deze kolommen geïmporteerd als strings (dtype: object), dus laten we ze het juiste formaat geven:

Op dit punt kunt u op elke gewenste manier samenvattingen voor uw gegevens krijgen. Ik ga daar hier niet op ingaan, maar om een ​​voorbeeld te geven, je zou kunnen aggregeren met behulp van draaipunten en dit soort dingen kunnen produceren:

Type Kleding Voedseltransport
Datum
2020-08 NaN 11.0 42.1
2020-09 19.5 69.5 NaN

1. Casestudy: Chatbot voor het maken van afspraken

2. IBM Watson Assistant biedt volgens een gepubliceerde studie een betere intentieclassificatie dan andere commerciële producten

3. Conversational AI testen

4. Hoe intelligente en geautomatiseerde conversatiesystemen de omzet en groei van B2C stimuleren.

Nu is het tijd om uw Telegram-bot te maken en een kanaal waar u uw uitgaven naartoe stuurt. Om een ​​bot te maken, moet u schrijven naar Telegram's BotFather, stuur het commando /beginen volg de instructies om uw bot te maken. U ontvangt een TOKEN, bewaar het veilig!

Nadat u het hebt gemaakt, verzendt u het commando / setprivacy, kies je nieuwe bot, en dan onbruikbaar maken​ Hierdoor kan je bot alle berichten lezen die naar het kanaal komen, in plaats van alleen degene die beginnen met een "/" (genaamd "commando's").

Maak nu een Telegram-kanaal en voeg de gebruikersnaam van je bot toe.

We kunnen nu beginnen met het schrijven van het python-script dat al onze uitgaven zal afhandelen. U kunt beginnen met de volgende stappen:

  • Importeer alle bibliotheken die u nodig heeft
  • Definieer variabelen
  • Open een koppeling met uw declaratieformulier
  • Haal de gegevens op in een opgemaakt dataframe

Naast de functies. We willen een eenvoudige workflow:

  1. We voeren een kostenbeschrijving en de prijs in, gescheiden door een komma.
  2. De bot vraagt ​​tot welk type de uitgave behoort, en biedt een vooraf gedefinieerde set mogelijke typen als knoppen.
  3. We selecteren het type door op de knop te drukken en de bot slaat de uitgave op als een nieuwe rij in het blad.

Hiervoor zullen we 2 methoden maken, een die inkomende berichten afhandelt en 'soorten' kosten aanbiedt om uit te kiezen ('input_expense'), en de andere die de kosten in het blad opslaat zodra we op een knop drukken ('callback_query_handler', u moet deze naam respecteren):

Maak ten slotte het snuit object, handlers toevoegen en beginnen met pollen:

Inmiddels zou je in staat moeten zijn om onkosten naar het kanaal te sturen (vergeet niet om het in het formulier te sturen: omschrijving, prijs), en de snuit bespaart uw uitgaven op het blad:

Source: https://chatbotslife.com/your-own-bookkeeping-telegram-bot-with-python-561507fc6a02?source=rss—-a49517e4c30b—4

spot_img

Laatste intelligentie

spot_img

Chat met ons

Hallo daar! Hoe kan ik u helpen?