CodeIgniter可以使用自定义Sendinblue API吗?

时间:2017-11-21 10:25:57

标签: api codeigniter sendinblue

我正在为Codeigniter搜索SendinBlue API但尚未找到。

在API尚不存在的情况下,我自己很难编写代码(我已经知道HTTP请求,但我对配置一无所知)

或者可以使用PHP吗?

由于

1 个答案:

答案 0 :(得分:0)

我有一个很好的解决方案,它对我来说很好用,我希望它也对你有用。 我正在使用 API-v3。

我所做的是:

  1. 通过我本地 PC 上的 Composer 下载 API。
  2. 在服务器上创建了一个名为“sendinblue”的文件夹(我们有 assets 文件夹)并从下载的 API 上传供应商文件夹 在这个文件夹内。
  3. 创建了一个名为“Sendinblue.php”的库,并在此处添加了所有必要的功能。现在我可以像使用其他库一样使用这个库了。

这是我的库结构:

<?php if (!defined('BASEPATH')) exit('No direct script access allowed');

class Sendinblue{
    public $config;
    public $apiInstance;
    public function __construct(){      
        require_once('sendinblue/vendor/autoload.php');
        $this->config = SendinBlue\Client\Configuration::getDefaultConfiguration()->setApiKey('api-key', '');
        $this->apiInstance = new SendinBlue\Client\Api\ContactsApi(
            new GuzzleHttp\Client(),
            $this->config
        );      
    }

    public function get_contact_info($data){
        $identifier = $data['email'];
        try {
          return $result = $this->apiInstance->getContactInfo($identifier);
        } catch (Exception $e) {
          return 'Exception when calling ContactsApi->getContactInfo: '.$e->getMessage();
        }
    }
    
    public function create_contact($data){
        $createContact = new \SendinBlue\Client\Model\CreateContact();
        $createContact['email'] = $data['email'];
        $createContact['listIds'] = [2];
        try {
          return $result = $this->apiInstance->createContact($createContact);
        } catch (Exception $e) {
          return $e->getCode();
        }
    }