SendInBlue PHP API 与 Codeigniter
SendInBlue PHP API with Codeigniter
我正在使用 Codeigniter 框架并尝试与 SendInBlue 的 PHP API 集成。他们PHP documentation is not super helpful and the setup instructions on Github也不清楚
文档对 "Download the files and include autoload.php" 说:
require_once('/path/to/APIv3-php-library/vendor/autoload.php');
但我在任何地方都找不到 autoload
,我不确定如何将其包含在我的 CI 结构中。
更新:
我联系了 Sendinblue 支持,他们没有任何 CI 用户的安装教程。我尝试使用 Compiler,并创建了文件夹结构,但我在将它与 CI 集成时仍然遇到问题。我将所有文件夹放在我的库中,但未正确加载并抱怨自动加载 class 不存在。
要获得 autoload.php,您需要使用 Composer。这将为您解决所有依赖关系并install/update它们。
如果您已经在库位置拥有整个 SendInBlue API 文件夹结构,您只能在您的控制器中添加 class My_Class ...
行 require_once (APPPATH . 'vendor/autoload.php');
例如
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
// include manually module library - SendInBlue API
require_once (APPPATH . 'vendor/autoload.php');
class My_Class extends CI_Controller {
....
之后,您可以按照 Github: APIv3-php-library - Getting Started
中的指南进行操作
如果你得到错误,意味着你的 SendInBlue 的结构是错误的。我建议您使用 Composer
- 如果未安装 Composer,请安装 - Installation - Linux / Unix / OSX or Installation - Windows
- 使用 Composer 安装 SendinBlue 的 API - Github: APIv3-php-library - Installation & Usage
- 在您的控制器中添加
autoload.php
- 请参阅前面的示例
如果您仍有问题,请在此处添加错误列表。
我有一个很好的解决方案,对我来说效果很好,我希望它也对你有用。
我正在使用 API-v3.
我做的是:
- 在我的本地 PC 上通过 composer 下载了 API。
- 在服务器上创建了一个名为“sendinblue”的文件夹(我们有
assets 文件夹)并从下载的 API 上传 vendor 文件夹
在此文件夹内。
- 创建了一个名为“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();
}
}
我正在使用 Codeigniter 框架并尝试与 SendInBlue 的 PHP API 集成。他们PHP documentation is not super helpful and the setup instructions on Github也不清楚
文档对 "Download the files and include autoload.php" 说:
require_once('/path/to/APIv3-php-library/vendor/autoload.php');
但我在任何地方都找不到 autoload
,我不确定如何将其包含在我的 CI 结构中。
更新:
我联系了 Sendinblue 支持,他们没有任何 CI 用户的安装教程。我尝试使用 Compiler,并创建了文件夹结构,但我在将它与 CI 集成时仍然遇到问题。我将所有文件夹放在我的库中,但未正确加载并抱怨自动加载 class 不存在。
要获得 autoload.php,您需要使用 Composer。这将为您解决所有依赖关系并install/update它们。
如果您已经在库位置拥有整个 SendInBlue API 文件夹结构,您只能在您的控制器中添加 class My_Class ...
行 require_once (APPPATH . 'vendor/autoload.php');
例如
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
// include manually module library - SendInBlue API
require_once (APPPATH . 'vendor/autoload.php');
class My_Class extends CI_Controller {
....
之后,您可以按照 Github: APIv3-php-library - Getting Started
中的指南进行操作如果你得到错误,意味着你的 SendInBlue 的结构是错误的。我建议您使用 Composer
- 如果未安装 Composer,请安装 - Installation - Linux / Unix / OSX or Installation - Windows
- 使用 Composer 安装 SendinBlue 的 API - Github: APIv3-php-library - Installation & Usage
- 在您的控制器中添加
autoload.php
- 请参阅前面的示例
如果您仍有问题,请在此处添加错误列表。
我有一个很好的解决方案,对我来说效果很好,我希望它也对你有用。 我正在使用 API-v3.
我做的是:
- 在我的本地 PC 上通过 composer 下载了 API。
- 在服务器上创建了一个名为“sendinblue”的文件夹(我们有 assets 文件夹)并从下载的 API 上传 vendor 文件夹 在此文件夹内。
- 创建了一个名为“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();
}
}