本文探討瞭如何使用PHP的Guzles HTTP客戶端與WunderList API進行交互。 流行的任務管理應用程序WunderList提供了API,允許開發人員以編程方式管理任務。 本指南展示了基本的crud(創建,讀取,更新,刪除)操作。
密鑰概念:
使開發人員能夠將任務管理集成到其應用程序中。該教程使用直接的PHP方法(無框架)和作曲家用於依賴關係管理。 由於沒有官方的PHP SDK,因此我們利用Guzzle。 伴侶演示存儲庫(原始文本中提供的鏈接)用AJAX展示了一個基本實現,以進行任務檢查。
設置開發環境:
> a文件管理依賴項:
composer.json
>為您的PHP類創建目錄。 需要三個文件:
{ "require": { "php": ">=5.5.0", "guzzlehttp/guzzle": "~6.0" }, "autoload": { "psr-4": { "Wunderlist\": "src/" } }, "require-dev": { "symfony/var-dumper": "~2.7" } }
> .gitignoresrc/
index.php
此文件!)和keys.php
>(排除和>) 。 .gitignore
應包含:vendor/
keys.php
.gitignore
<code>vendor/* keys.php</code>
在編碼之前,請在Wunderlist帳戶中創建一個新應用程序。 提供虛擬應用程序URL和應用回調URL(省略了OAuth的詳細信息)。 至關重要的是,生成管理員訪問令牌 - 該對您的應用程序進行身份驗證。 >
class:
WunderlistClient
文件存儲您的>>
>
keys.php
client_id
access_token
class(in
<?php $client_id = 'your-client-id'; $access_token = 'your-access-token'; ?>
WunderlistClient
src/WunderlistClient.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); } } }
>
index.php
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 }
{ "require": { "php": ">=5.5.0", "guzzlehttp/guzzle": "~6.0" }, "autoload": { "psr-4": { "Wunderlist\": "src/" } }, "require-dev": { "symfony/var-dumper": "~2.7" } }
記住將佔位符值替換為您的實際client_id
>和access_token
。 類似地實施其他CRUD方法,引用Wunderlist API文檔。 完整的代碼(包括錯誤處理和更高級功能)將大大更長。 這提供了一個骨骼結構以開始。 請諮詢WunderList API文檔以獲取有關特定端點的詳細信息和請求參數。
以上是Wunderlist的速成課程與Guzzle的API的詳細內容。更多資訊請關注PHP中文網其他相關文章!