đ 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 vous connecter au daemon, votre programme a besoin dâune clĂ© client. Cette clĂ© peut ĂȘtre passĂ©e Ă votre programme en utilisant soit une variable dâenvironnement, soit un fichier .env.
Fichier .env
CrĂ©ez un fichier .env en utilisant la commande suivante. Rappelez-vous que ce fichier doit ĂȘtre dans le rĂ©pertoire courant lorsque vous lancez votre programme.
echo OLVID_CLIENT_KEY=ReplaceWithYourClientKey > .env
Variable dâenvironnement
Il est Ă©galement possible dâexporter votre clĂ© en tant que variable dâenvironnement. Dans ce cas, il faut penser Ă lâexporter Ă chaque nouvelle session shell.
export OLVID_CLIENT_KEY=ReplaceWithYourClientKey
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(message.body)
async def on_discussion_new(self, discussion: datatypes.Discussion):
await discussion.post_message("Hello đ")
async def main():
bot = EchoBot()
tools.AutoInvitationBot() # 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.