đ Client Python#
Pré-requis
Si vous nâavez pas installĂ© de daemon, merci de suivre la section đ Quickstart.
Avant de commencer, vérifiez bien que vous avez une instance du daemon Olvid qui tourne, avec une identité créée dessus, et une clé client valide pour vous connecter en utilisant cette identité.
Si vous souhaitez vérifier que votre daemon est fonctionnel et/ou récupérer une clé client perdue, utilisez la commande : docker compose run --rm cli key get
Installation#
Nous avons dĂ©veloppĂ© une librairie Python qui permet dâinteragir facilement avec votre daemon.
Elle est disponible Ă lâinstallation avec la commande pip.
pip3 install olvid-bot
Astuce
Le module olvid-bot nécessite une version de Python supérieure ou égale à 3.10.
Sur Mac OS, nous vous conseillons dâutiliser HomeBrew pour installer une version plus rĂ©cente.
brew install python3
Configuration#
Pour se connecter Ă un daemon, votre programme a besoin de connaitre lâadresse du daemon et la clĂ© client Ă utiliser. Pour cela, on utilise des variables dâenvironnement ou un fichier .env.
Remplacez la clĂ© client par celle que vous avez créée lors de la mise en place de votre daemon, et lâadresse du daemon si nĂ©cessaire.
echo OLVID_DAEMON_URL=http://localhost:50051 > .env
echo OLVID_CLIENT_KEY=ReplaceWithYourClientKey >> .env
Premier programme#
Afin de vérifier que tout fonctionne correctement, vous pouvez copier/coller ce programme dans un fichier main.py.
import asyncio
from olvid import OlvidClient
async def main():
client = OlvidClient()
print((await client.identity_get()).display_name)
asyncio.set_event_loop(asyncio.new_event_loop())
asyncio.get_event_loop().run_until_complete(main())
Vous pouvez ensuite lâexĂ©cuter Ă lâaide de lâinterprĂ©teur Python.
python3 main.py
Si tout a bien Ă©tĂ© configurĂ©, vous devriez voir sâafficher le nom dâusage de lâidentitĂ© que vous avez créée sur le daemon.
Sinon, rendez-vous dans notre section đ©âđ§ DĂ©pannage.
Premier Bot#
Pour commencer Ă coder votre premier bot, vous pouvez partir de lâexemple suivant. Il se contente de rĂ©pondre Ă chaque message avec le mĂȘme message, mais il peut facilement ĂȘtre modifiĂ© et amĂ©liorĂ©.
import asyncio
from olvid import OlvidClient, datatypes, tools
class EchoBot(OlvidClient):
async def on_message_received(self, message: datatypes.Message):
await message.reply(client=self, body=message.body)
async def on_discussion_new(self, discussion: datatypes.Discussion):
await discussion.post_message(client=self, body="Hello đ")
async def main():
bot = EchoBot()
await bot.enable_auto_invitation(accept_all=True) # automatically accept presentation and group invitations
await bot.run_forever()
asyncio.set_event_loop(asyncio.new_event_loop())
asyncio.get_event_loop().run_until_complete(main())
Et maintenant ?#
Pour en apprendre plus sur lâutilisation de notre librairie Python rendez-vous dans notre section đ©âđ« Tutoriels. Sinon rendez-vous dans la section đ± Exemples pour dĂ©ployer des projets clĂ©s en main.