Cet article explore comment interagir avec l'API Wunderlist à l'aide du client HTTP de Guzzle de PHP. Wunderlist, une application de gestion des tâches populaire, propose une API permettant aux développeurs de gérer les tâches par programme. Ce guide démontre des opérations de base CRUD (Créer, lire, mettre à jour, supprimer).
Concepts clés:
L'API Wunderlist, accessible au public depuis 2015, permet aux développeurs d'intégrer la gestion des tâches dans leurs applications. Ce tutoriel utilise une approche PHP simple (sans frameworks) et un compositeur pour la gestion des dépendances. Puisqu'il n'y a pas de SDK PHP officiel, nous tirons parti de Guzzle. Un référentiel de démonstration compagnon (lien fourni dans le texte d'origine) présente une implémentation de base avec AJAX pour la vérification des tâches.
Configuration de l'environnement de développement:
a composer.json
Le fichier gère les dépendances:
{ "require": { "php": ">=5.5.0", "guzzlehttp/guzzle": "~6.0" }, "autoload": { "psr-4": { "Wunderlist\": "src/" } }, "require-dev": { "symfony/var-dumper": "~2.7" } }
Créez un répertoire src/
pour vos classes PHP. Trois fichiers sont nécessaires: index.php
(pour l'interaction API), keys.php
(stockage des informations d'identification de l'API - .gitignore ce fichier!), Et .gitignore
(pour exclure vendor/
et keys.php
)) . .gitignore
doit contenir:
<code>vendor/* keys.php</code>
Configuration de l'application Wunderlist:
Avant de coder, créez une nouvelle application dans votre compte Wunderlist. Fournissez une URL de l'application factice et une URL de rappel d'application (les détails OAuth sont omis par Brivity). Surtout, générez un jeton d'accès administrateur - cela authentifie votre application.
La classe WunderlistClient
:
Le fichier keys.php
stocke votre client_id
et access_token
:
<?php $client_id = 'your-client-id'; $access_token = 'your-access-token'; ?>
La classe WunderlistClient
classe (dans src/WunderlistClient.php
) gère les demandes de l'API:
<?php namespace Wunderlist; use GuzzleHttp\ClientInterface; use Psr\Http\Message\ResponseInterface; class WunderlistClient { private $client; public function __construct(ClientInterface $client) { $this->client = $client; } // ... methods for getLists(), getList(), getListTasks(), createTask(), completeTask() ... (See below for examples) private function checkResponseStatusCode(ResponseInterface $response, $expectedStatusCode) { $statusCode = $response->getStatusCode(); if ($statusCode !== $expectedStatusCode) { throw new \RuntimeException('Wunderlist API returned status code ' . $statusCode . ' expected ' . $expectedStatusCode); } } }
index.php
Exemple (en utilisant WunderlistClient
):
require 'vendor/autoload.php'; require_once 'keys.php'; use GuzzleHttp\Client; use Wunderlist\WunderlistClient; $guzzle = new Client([ 'base_uri' => 'https://a.wunderlist.com/api/v1/', 'headers' => [ 'Content-Type' => 'application/json', 'X-Client-ID' => $client_id, 'X-Access-Token' => $access_token, ] ]); $wunderlist = new WunderlistClient($guzzle); try { $lists = $wunderlist->getLists(); // Process $lists } catch (\Exception $e) { // Handle exceptions }
Exemples de méthodes pour WunderlistClient
(illustrative):
{ "require": { "php": ">=5.5.0", "guzzlehttp/guzzle": "~6.0" }, "autoload": { "psr-4": { "Wunderlist\": "src/" } }, "require-dev": { "symfony/var-dumper": "~2.7" } }
N'oubliez pas de remplacer les valeurs d'espace réservé par vos client_id
et access_token
réels. Implémentez d'autres méthodes CRUD de la même manière, faisant référence à la documentation de l'API Wunderlist. Le code complet, y compris la gestion des erreurs et les fonctionnalités plus avancées, serait beaucoup plus longue. Cela fournit une structure squelettique pour commencer. Consultez la documentation de l'API Wunderlist pour plus de détails sur des points de terminaison spécifiques et des paramètres de demande.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!