Maison >développement back-end >tutoriel php >API Crash Course de Wunderlist avec Guzzle

API Crash Course de Wunderlist avec Guzzle

William Shakespeare
William Shakespeareoriginal
2025-02-16 12:33:09246parcourir

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:

  • API Wunderlist: fournit des méthodes pour créer, lire, mettre à jour et supprimer les tâches dans Wunderlist.
  • Guzzle: Un client HTTP PHP simplifiant les interactions de l'API en manipulant les demandes HTTP.
  • Authentification: nécessite de créer une application Wunderlist et d'obtenir un jeton d'accès.
  • Gestion des erreurs: Utilisation de la gestion des exceptions dans Guzzle pour gérer les erreurs HTTP.

Crash Course of Wunderlist's API with Guzzle

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:

<code class="language-json">{
    "require": {
        "php": ">=5.5.0",
        "guzzlehttp/guzzle": "~6.0"
    },
    "autoload": {
        "psr-4": {
            "Wunderlist\": "src/"
        }
    },
    "require-dev": {
        "symfony/var-dumper": "~2.7"
    }
}</code>

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.

Crash Course of Wunderlist's API with Guzzle

La classe WunderlistClient:

Le fichier keys.php stocke votre client_id et access_token:

<code class="language-php"><?php
$client_id = 'your-client-id';
$access_token = 'your-access-token';
?></code>

La classe WunderlistClient classe (dans src/WunderlistClient.php) gère les demandes de l'API:

<code class="language-php"><?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);
        }
    }
}</code>

index.php Exemple (en utilisant WunderlistClient):

<code class="language-php">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
}</code>

Exemples de méthodes pour WunderlistClient (illustrative):

<code class="language-json">{
    "require": {
        "php": ">=5.5.0",
        "guzzlehttp/guzzle": "~6.0"
    },
    "autoload": {
        "psr-4": {
            "Wunderlist\": "src/"
        }
    },
    "require-dev": {
        "symfony/var-dumper": "~2.7"
    }
}</code>

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn