đź“• Node [[activitypub]]
↳ 📓 Resource @communecter/activitypub
đź“„ activitypub.md by @communecter

ActivityPub & Communecter

Informations générales

Comment utiliser ActivityPub

Pour utiliser ActivityPub (AP) vous devrez avoir un acteur accessible en public. Le format de votre acteur doit être en JSON-LD. Votre acteur doit ressembler à ceci : exemple acteur sur le site communecter partir développement.

L’id doit correspond Ă  l’URL du document, tous les liens doit ĂŞtre en HTTPS.

Vous aurez besoin d’une inbox car les instances qui utilisent AP ont besoin reconnait un acteur si celui-ci possède une inbox. Chaque acteur nĂ©cessite une publicKey et une privateKey qui peut ĂŞtre gĂ©nĂ©rĂ© avec openssl.

JSON ne prend en charge les sauts de ligne, on doit remplacer les sauts de ligne par \n (pour la partir publicKeyPEM).

Le Webfinger permet de demandĂ© Ă  un site web "Avez vous un utilisateur avec ce nom d’utilisateur" et de recevoir des liens de ressource en rĂ©ponse. Le noeud finale d’un Webfinger se trouve toujours en /.well-known/webfinger et recevoir des requĂŞtes tel que /.well-known/webfinger?resource=acct:name@ my-example.com

Pour pouvoir envoyĂ© un message (par exemple avec le verbe "Create"), il est nĂ©cessaire d’avoir la inbox de la personne concernĂ© et d’utiliser un HTTP signature qui permettra de savoir si l’acteur qui souhaite envoyer un message est le bon. Une signature HTTP s’agit d’un en-tĂŞte HTTP signĂ© par la paire de clĂ©s RSA. Pour avoir plus d’information sur la crĂ©ation d’une signature HTTP, rĂ©fĂ©rencier vous le lien suivant partir HTTP signature : [How to implement a basic ActivityPub server(https://blog.joinmastodon.org/2018/06/how-to-implement-a-basic-activitypub-server/).

Liens pratique :

DĂ©veloppement en cours (Tony et Pierre)

RĂ©alisation d’un acteur AP sur Communecter

J’ai crĂ©e une api qui permet de gĂ©nĂ©rĂ© un acteur AP sur communecter, vous pouvez trouvez un exemple en cliquant ici. Petit prĂ©cision : la publicKey est en format brute. Comment sa fonctionne : Vous devrez indiquez dans le lien id de la personne ici : http://dev.communecter.org/api/activitypub/actor/id/ + userId.

Fichier modifier : TranslateActivityStream.php / Rest.php . Fichier crée : ActivityPubController.php / ActorAction.php .

CrĂ©ation d’un client mastodon

Nous avons crée avec Pierre un client mastodon qui permet de poster/récupéré les statuts/récupéré les followers/voir la timelines public en utilisant le REST API et en ce basant sur cette librairie mastodon.js par Kirschn. Vous pouvez retrouvez nos codes ici (gitlab.adullact) : mastodon_api

Test d’un serveur express-activitypub en nodejs

J’ai suivi ce tutoriel lĂ  pour pouvoir envyer un message sur mamot.fr : Decentralizing Social Interactions with ActivityPub. Pierre a dĂ©taillĂ© plus en bas comment rĂ©aliser le tutoriel. Remarque constatĂ© : Pour pouvoir voir un message sur mamot.fr, nous Ă©tions dans l’obligation de suivre notre acteur crĂ©e par express activitypub, sans cela, il nous est impossible de voir nos message dans le timeline. Ce problème est rĂ©gurant quand on a tentĂ© avec un compte pixelfed de communiquĂ© avec mamot.fr.

La rĂ©alisation d’une inbox (non fonctionnelle)

Je me suis basĂ© sur le script crĂ©e par Darius Kazemi sur son tutoriel Decentralizing Social Interactions with ActivityPub. Malheureusement je n’arrive pas Ă  faire fonctionnĂ© mon inbox car je n’arrive pas a encodĂ© la signature.

CrĂ©ation d’un client Mastodon

Utilisation de l’API mamot pour pouvoir afficher les timelines public, local, ajouter un post. Afin de pourvoir acceder a le page mastodon cliquer içi Join Mastodon Mon code source est disponible sur gitlab Code Source

Ajout d’un acteur ActivityPub sur l’API de communecter

Afin d’avoir un aperçus du format d’un acteur ActivityPub en ajoutant votre id a la fin du lien mon lien pour accĂ©der Ă  l’acteur

Test d’envoi d’un message sur mamot

  • Taper la commande git clone [https://github.com/dariusk/express-activitypub.git](https://github.com/dariusk/express-activitypub.git) dans votre terminal.
    • Installer ngrok, en suivante les instructions https://ngrok.com/download.
    • Taper la commande /.ngrok/http 3000
    • Ensuite allez dans le dossier express-activityPub, modifier le dossier config.json dans route.
    • Mettre un nom d’utilisateur
    • Mettre un mot de passe
    • Le port sera 3000, et le domain sera l’adresse en https de ngrok, mais il faut retirer le https, pour obtenir ceci exemple: d40f1818.ngrok.io
    • Taper la commande node index.js
    • Acceder a l’url du site en https et rajouter admin exemple: [https://d40f1818.ngrok.io/admin](https://d40f1818.ngrok.io/admin)
    • CrĂ©e un compte test saisissez le nom d’utlisateur et le mot de passe, ensuite il y aura des donnĂ©es qui seront gĂ©nĂ©rĂ©s, afficher le account WebFinger url, copier le suject sans la acct:
    • Connecter vous a https://mamot.fr.
    • Rechercher le webfinger url, cliquer sur le bouton pour follow.
    • Ensuite saisir test dans account name, Copier coller l’API Key, et saisir votre message exemple : Hello world !

Et vous pourrez voir le message envoyer sur mtps://mamot.fr

đź“„ activitypub.md by @communecter

ActivityPub & Communecter

Informations générales

Comment utiliser ActivityPub

Pour utiliser ActivityPub (AP) vous devrez avoir un acteur accessible en public. Le format de votre acteur doit être en JSON-LD. Votre acteur doit ressembler à ceci : exemple acteur sur le site communecter partir développement.

L’id doit correspond Ă  l’URL du document, tous les liens doit ĂŞtre en HTTPS.

Vous aurez besoin d’une inbox car les instances qui utilisent AP ont besoin reconnait un acteur si celui-ci possède une inbox. Chaque acteur nĂ©cessite une publicKey et une privateKey qui peut ĂŞtre gĂ©nĂ©rĂ© avec openssl.

JSON ne prend en charge les sauts de ligne, on doit remplacer les sauts de ligne par \n (pour la partir publicKeyPEM).

Le Webfinger permet de demandĂ© Ă  un site web "Avez vous un utilisateur avec ce nom d’utilisateur" et de recevoir des liens de ressource en rĂ©ponse. Le noeud finale d’un Webfinger se trouve toujours en /.well-known/webfinger et recevoir des requĂŞtes tel que /.well-known/webfinger?resource=acct:name@ my-example.com

Pour pouvoir envoyĂ© un message (par exemple avec le verbe "Create"), il est nĂ©cessaire d’avoir la inbox de la personne concernĂ© et d’utiliser un HTTP signature qui permettra de savoir si l’acteur qui souhaite envoyer un message est le bon. Une signature HTTP s’agit d’un en-tĂŞte HTTP signĂ© par la paire de clĂ©s RSA. Pour avoir plus d’information sur la crĂ©ation d’une signature HTTP, rĂ©fĂ©rencier vous le lien suivant partir HTTP signature : [How to implement a basic ActivityPub server(https://blog.joinmastodon.org/2018/06/how-to-implement-a-basic-activitypub-server/).

Liens pratique :

DĂ©veloppement en cours (Tony et Pierre)

RĂ©alisation d’un acteur AP sur Communecter

J’ai crĂ©e une api qui permet de gĂ©nĂ©rĂ© un acteur AP sur communecter, vous pouvez trouvez un exemple en cliquant ici. Petit prĂ©cision : la publicKey est en format brute. Comment sa fonctionne : Vous devrez indiquez dans le lien id de la personne ici : http://dev.communecter.org/api/activitypub/actor/id/ + userId.

Fichier modifier : TranslateActivityStream.php / Rest.php . Fichier crée : ActivityPubController.php / ActorAction.php .

CrĂ©ation d’un client mastodon

Nous avons crée avec Pierre un client mastodon qui permet de poster/récupéré les statuts/récupéré les followers/voir la timelines public en utilisant le REST API et en ce basant sur cette librairie mastodon.js par Kirschn. Vous pouvez retrouvez nos codes ici (gitlab.adullact) : mastodon_api

Test d’un serveur express-activitypub en nodejs

J’ai suivi ce tutoriel lĂ  pour pouvoir envyer un message sur mamot.fr : Decentralizing Social Interactions with ActivityPub. Pierre a dĂ©taillĂ© plus en bas comment rĂ©aliser le tutoriel. Remarque constatĂ© : Pour pouvoir voir un message sur mamot.fr, nous Ă©tions dans l’obligation de suivre notre acteur crĂ©e par express activitypub, sans cela, il nous est impossible de voir nos message dans le timeline. Ce problème est rĂ©gurant quand on a tentĂ© avec un compte pixelfed de communiquĂ© avec mamot.fr.

La rĂ©alisation d’une inbox (non fonctionnelle)

Je me suis basĂ© sur le script crĂ©e par Darius Kazemi sur son tutoriel Decentralizing Social Interactions with ActivityPub. Malheureusement je n’arrive pas Ă  faire fonctionnĂ© mon inbox car je n’arrive pas a encodĂ© la signature.

CrĂ©ation d’un client Mastodon

Utilisation de l’API mamot pour pouvoir afficher les timelines public, local, ajouter un post. Afin de pourvoir acceder a le page mastodon cliquer içi Join Mastodon Mon code source est disponible sur gitlab Code Source

Ajout d’un acteur ActivityPub sur l’API de communecter

Afin d’avoir un aperçus du format d’un acteur ActivityPub en ajoutant votre id a la fin du lien mon lien pour accĂ©der Ă  l’acteur

Test d’envoi d’un message sur mamot

  • Taper la commande git clone [https://github.com/dariusk/express-activitypub.git](https://github.com/dariusk/express-activitypub.git) dans votre terminal.
    • Installer ngrok, en suivante les instructions https://ngrok.com/download.
    • Taper la commande /.ngrok/http 3000
    • Ensuite allez dans le dossier express-activityPub, modifier le dossier config.json dans route.
    • Mettre un nom d’utilisateur
    • Mettre un mot de passe
    • Le port sera 3000, et le domain sera l’adresse en https de ngrok, mais il faut retirer le https, pour obtenir ceci exemple: d40f1818.ngrok.io
    • Taper la commande node index.js
    • Acceder a l’url du site en https et rajouter admin exemple: [https://d40f1818.ngrok.io/admin](https://d40f1818.ngrok.io/admin)
    • CrĂ©e un compte test saisissez le nom d’utlisateur et le mot de passe, ensuite il y aura des donnĂ©es qui seront gĂ©nĂ©rĂ©s, afficher le account WebFinger url, copier le suject sans la acct:
    • Connecter vous a https://mamot.fr.
    • Rechercher le webfinger url, cliquer sur le bouton pour follow.
    • Ensuite saisir test dans account name, Copier coller l’API Key, et saisir votre message exemple : Hello world !

Et vous pourrez voir le message envoyer sur mtps://mamot.fr

Loading pushes...

Rendering context...