帮酷LOGO
  • 显示原文与译文双语对照的内容
文章标签:client library  spa  spark  PHP  
PHP Client Library for use with the Sparkpost Email REST API

  • 源代码名称:php-sparkpost
  • 源代码网址:http://www.github.com/SparkPost/php-sparkpost
  • php-sparkpost源代码文档
  • php-sparkpost源代码下载
  • Git URL:
    git://www.github.com/SparkPost/php-sparkpost.git
  • Git Clone代码到本地:
    git clone http://www.github.com/SparkPost/php-sparkpost
  • Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/SparkPost/php-sparkpost
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
  • 注册一个SparkPost帐户,访问我们的开发者中心,以获得更多内容。

    SparkPost PHP库

    Travis CICoverage StatusDownloadsPackagistSlack Status

    用于使用的官方PHP库 SparkPost REST API

    使用这里库之前,你必须有一个有效的API密钥。 要获取API密钥,请登录到SparkPost帐户,并在设置页面中生成一个。

    安装

    请注意:软件包 sparkpost/php-sparkpost 已经从版本 2.0更改为 sparkpost/sparkpost

    安装 SparkPost PHP库的推荐方法是通过 Composer 。

    # Install Composer
    curl -sS https://getcomposer.org/installer | php

    Sparkpost需要 php http客户端( 请参见设置一个请求适配器插件。) 。 有几个提供程序可用。 如果你正在使用 guzzle6,你的安装可能如下所示。

    composer require guzzlehttp/guzzle
    composer require php-http/guzzle6-adapter

    接下来,运行 Composer 命令来安装 SparkPost PHP库:

    composer require sparkpost/sparkpost

    安装后,需要使用 Composer的自动装弹机:

    require'vendor/autoload.php';useSparkPostSparkPost;

    注意:没有 Composer的成本outweight使用PHP客户端库的优势。 问题 #164 类似的简单函数包装 SparkPost API,使得在不解析 Composer 依赖关系的情况下使用API变得很容易。

    设置请求适配器

    由于依赖性冲突,我们选择使用请求适配器而不是请求库。 这意味着应用程序需要将请求适配器传递到SparkPost库的构造函数。 我们在SparkPost中使用 HTTPlug 。 请访问他们的repo 以获得支持客户机和适配器的列表。 如果当前没有使用请求库,则需要需要一个并在它的中创建客户端并传递它。 下面的示例使用GuzzleHttp客户端库。

    可以像这样设置客户端:

    <?phprequire'vendor/autoload.php';useSparkPostSparkPost;useGuzzleHttpClient;useHttpAdapterGuzzle6ClientasGuzzleAdapter;$httpClient=newGuzzleAdapter(newClient());$sparky=newSparkPost($httpClient, ['key'=>'YOUR_API_KEY']);?>

    初始化

    new Sparkpost(httpClient, options )
    • httpClient
      • 需要:是
      • HTTPlug支持的HTTP客户端或者适配器
    • options
      • 需要:是
      • 类型:String 或者 Array
      • 有效的Sparkpost API键或者选项的array
    • options.key
      • 需要:是
      • 类型:String
      • 有效的Sparkpost API密钥
    • options.host
      • 必需:无
      • 类型:String
      • 默认值:api.sparkpost.com
    • options.protocol
      • 必需:无
      • 类型:String
      • 默认值:https
    • options.port
      • 必需:无
      • 类型:Number
      • 默认值:443
    • options.version
      • 必需:无
      • 类型:String
      • 默认值:v1
    • options.async
      • 必需:无
      • 类型:Boolean
      • 默认值:true
      • async 定义 request 函数是否发送异步或者同步请求。 如果你的客户端不支持异步请求设置为 false
    • options.retries
      • 必需:无
      • 类型:Number
      • 默认值:0
      • retries 控制在接收到 5xx 响应后客户端调用的API调用数
    • options.debug
      • 必需:无
      • 类型:Boolean
      • 默认值:false
      • 如果 debug 是 true,那么所有 SparkPostResponseSparkPostException 实例都将通过函数 getRequest 返回请求值的任何 array

    方法

    请求( 方法,uri ] )

    • method
      • 需要:是
      • 类型:String
      • 请求的HTTP方法
    • uri
      • 需要:是
      • 类型:String
      • 接收请求的URI
    • payload
      • 必需:无
      • 类型:Array
      • 如果该方法为 GET,则值将编码到URL中。 否则,如果方法是 POSTPUT 或者 DELETE,则负载将用于请求主体。
    • headers
      • 必需:无
      • 类型:Array
      • 与请求一起发送的自定义标头。

    syncRequest ( 方法,uri [, payload [, headers] ] )

    向 SparkPost API发送同步请求并返回 SparkPostResponse

    asyncRequest ( 方法,uri [, payload [, headers] ] )

    向 SparkPost API发送一个异步请求并返回一个 SparkPostPromise

    setHttpClient ( httpClient )

    • httpClient
      • 需要:是
      • HTTPlug支持的HTTP客户端或者适配器

    setOptions ( 选项)

    • options
      • 需要:是
      • 类型:Array
      • 请参见构造函数

    端点

    传输

    • 获取( [transmissionID] [, payload] )
      • transmissionID - 查看 uri 请求选项
      • payload - 查看请求选项
    • post(payload)
      • payload - 查看请求选项
      • payload.cc
        • 必需:无
        • 类型:Array
        • 接收传送副本的收件人
      • payload.bcc
        • 必需:无
        • 类型:Array
        • 收到descreetly的收件人收到传输的碳副本
    • delete(transmissionID)
      • transmissionID - 查看 uri 请求选项

    示例

    使用传输端点发送电子邮件

    <?phprequire'vendor/autoload.php';useSparkPostSparkPost;useGuzzleHttpClient;useHttpAdapterGuzzle6ClientasGuzzleAdapter;$httpClient=newGuzzleAdapter(newClient());$sparky=newSparkPost($httpClient, ['key'=>'YOUR_API_KEY']);$promise=$sparky->transmissions->post(['content'=> ['from'=> ['name'=>'SparkPost Team','email'=>'from@sparkpostbox.com', ],'subject'=>'First Mailing From PHP','html'=>'<html><body><h1>Congratulations, {{name}}!</h1><p>You just sent your very first mailing!</p></body></html>','text'=>'Congratulations, {{name}}!! You just sent your very first mailing!', ],'substitution_data'=> ['name'=>'YOUR_FIRST_NAME'],'recipients'=> [ ['address'=> ['name'=>'YOUR_NAME','email'=>'YOUR_EMAIL', ], ], ],'cc'=> [ ['address'=> ['name'=>'ANOTHER_NAME','email'=>'ANOTHER_EMAIL', ], ], ],'bcc'=> [ ['address'=> ['name'=>'AND_ANOTHER_NAME','email'=>'AND_ANOTHER_EMAIL', ], ], ],]);?>

    使用基本请求函数发送一个API调用

    我们提供了一个基本请求函数来访问我们的任何API资源。

    <?phprequire'vendor/autoload.php';useSparkPostSparkPost;useGuzzleHttpClient;useHttpAdapterGuzzle6ClientasGuzzleAdapter;$httpClient=newGuzzleAdapter(newClient());$sparky=newSparkPost($httpClient, ['key'=>'YOUR_API_KEY']);$promise=$sparky->request('GET', 'metrics/ip-pools', ['from'=>'2014-12-01T09:00','to'=>'2015-12-01T08:00','timezone'=>'America/New_York','limit'=>'5',]);?>

    处理响应

    API调用要么返回 SparkPostPromise,要么返回 SparkPostResponse,取决于 asynctrue 还是 false

    同步

    $sparky->setOptions(['async'=>false]);try {$response=$sparky->transmissions->get();echo$response->getStatusCode()."n";print_r($response->getBody())."n";}catch (Exception$e) {echo$e->getCode()."n";echo$e->getMessage()."n";}

    异步

    异步a 以两种方式处理: 通过传递回调或者等待实现的承诺。 等待行为类似于同步请求。

    等待( 同步)
    $promise=$sparky->transmissions->get();try {$response=$promise->wait();echo$response->getStatusCode()."n";print_r($response->getBody())."n";} catch (Exception$e) {echo$e->getCode()."n";echo$e->getMessage()."n";}echo"I will print out after the promise is fulfilled";
    然后( 异步)
    $promise=$sparky->transmissions->get();$promise->then(// Success callbackfunction ($response) {echo$response->getStatusCode()."n";print_r($response->getBody())."n"; },// Failure callbackfunction (Exception$e) {echo$e->getCode()."n";echo$e->getMessage()."n"; });echo"I will print out before the promise is fulfilled";// You can combine multiple promises using GuzzleHttpPromiseall() and other functions from the library.$promise->wait();

    处理异常

    将在两种情况下引发异常: 请求存在问题,或者服务器返回 400 或者更高版本的状态代码。

    SparkPostException

    • getCode()
      • 返回 400 或者更高版本的响应状态代码
    • getMessage()
      • 返回异常消息
    • getBody()
      • 如果有响应体,它将它作为 Array 返回。 否则它返回 null
    • getRequest()
      • 返回具有请求值 methodurlheadersbody 时的array,当 debugtrue

    请参见捐赠。



    文章标签:PHP  spa  client library  spark  

    Copyright © 2011 HelpLib All rights reserved.    知识分享协议 京ICP备05059198号-3  |  如果智培  |  酷兔英语