Première Conclusion

Je pense que je ne suis pas loin de tout avoir mais il y a encore du travail. Heureusement, j’ai trouvé un article très intéressant : https://blog.datafeedr.com/using-oauth-1-0-wordpress-api-custom-endpoints/ (datafeedr)

C’est un très long article ! mais j’ai déjà couvert une grande partie (la moitié) avec mes articles précédents.

Tout d’abord j’ajoute (en local) le plugin que j’ai créé dans les articles précédents.

http://localhost:8888/jbs/wp-json retourne :

  • « namespaces« :[
    1. « oembed\/1.0 »,
    2. « jb\/v1 »,
    3. « wp\/v2 »

    ],

Il est bien là : jb/v1

Maintenant suivons pas à pas le tutoriel. Comme il n’y a pas de § dans l’article datafeedr, repérez les phrases correspondant mes titres dans son document

Add the following code to your plugin on your client site

Tout d’abord, bien noter que l’auteur utilise 2 sites locaux (ce que je n’avais pas remarqué au départ).

  • http://wp-api-main/ (qui sera pour moi) http://localhost:8888/jbs/

et

  • http://wp-api-client/ (qui sera pour moi) http://localhost:8888/bs4

J’ai créé le plugin jb_test_bs4 et je l’ai activé (test_api_connection.php)

J’ai créé la page de test http://localhost:8888/bs4/test-1/

Je crée le shortcode [test_api_connection] tel qu’indiqué.

Now go to your main API site and install and activate the WordPress REST API – OAuth 1.0a Server plugin

J’installe le plugin WP REST API sur jbs

je crée l’application Client Api Connection

Client Key 3nfqy2SBNPi1
Client Secret FXj9PNhb39QidB8QGE87p9e3P33j7l4d91OeQGduNnqr74O8

Open the Postman app

Je suis toutes les étapes, comme indiqué et vu dans mes articles précédent.

OK, we are done with Postman

On your main API site, install the Disable Rest API plugin

J’obtiens bien ce qui est indiqué.

J’ajoute les lignes de code de OAuth_Authorization_Header.php à mon fichier header.php, plugin jb_test_bs4

So now when you load the page with your shortcodes on your client site, you should have one ‘access denied’ message and one with a successful response.

Perfect! Now, let’s make that new endpoint private so only authenticated clients can access it.

Remplacement de header.php (jbs) avec private-custom-endpoint.php

Et là,… ça ne marche pas… pour l’instant.

Si je remplace update_core par read, ça marche ! mais ce n’est pas ce que je veux.

https://codex.wordpress.org/Roles_and_Capabilities

Je change les droits d’utilisateur à l’utilisateur pourletest, et là ca marche.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *