使用autoload.php而不使用composer的Sendinblue API V3



我尝试使用Sendinblue,使用API V3和php发送事务电子邮件。

我试着遵循文档https://github.com/sendinblue/APIv3-php-library我读过很多关于Stackoverflow的文章,比如这样一篇:我如何在Sendinblueapiv3中设置事务性电子邮件属性?。

我不知道如何用composer生成vendor/autoload.php,所以我下载了sendinblue/api-v3-sdk(sendinblue官方提供的RESTFul api V3php库(https://php-download.com.

我测试过这些线路:

<?php 
require_once('/vendor/autoload.php');
$config = SendinBlueClientConfiguration::getDefaultConfiguration()->setApiKey('api-key', 'xkeysib-my-key');
$apiInstance = new SendinBlueClientApiTransactionalEmailsApi(
new GuzzleHttpClient(),
$config
);
$sendSmtpEmail = new SendinBlueClientModelSendSmtpEmail();
$sendSmtpEmail['subject'] = 'Le sujet';
$sendSmtpEmail['htmlContent'] = '<html><body><h1>This is a transactional email </h1></body></html>';
$sendSmtpEmail['sender'] = array('name' => 'John Doe', 'email' => 'contact@domain.com');
$sendSmtpEmail['to'] = array(
array('email' => 'autre@domain2fr', 'name' => 'Jane Doe')
);
$sendSmtpEmail['replyTo'] = array('email' => 'replyto@domain.com', 'name' => 'John Doe');
$sendSmtpEmail['headers'] = array('Some-Custom-Name' => 'unique-id-1234');
$sendSmtpEmail['params'] = array('parameter' => 'My param value', 'subject' => 'New Subject');
try {
$result = $apiInstance->sendTransacEmail($sendSmtpEmail);
print_r($result);
} catch (Exception $e) {
echo 'Exception when calling TransactionalEmailsApi->sendTransacEmail: ', $e->getMessage(), PHP_EOL;
}
?>

我有以下错误:

分析错误:语法错误,意外的"?",应为D:中的变量(T_variable(。。。\sendinblueV3\vendor\guzzlehttp\guzzle \src\Client.php,位于第203行

因为这条线路

$apiInstance = ....

所以我删除了"在Client.php的第203行:

public function getConfig(?string $option = null)

然后,我又犯了一个错误:

分析错误:语法错误,意外的"const"(T_const(,在第19行的D:\Dropbox\www\ifrb\IFRBTP77\sendinblueV3\vendor\guzzlehttp\guzzle \src\ClientInterface.php中应为变量(T_variable(

如果有人知道问题出在哪里。。。。

谢谢,奥利维尔。

编辑:

我已经按照@David Wolf的建议安装了作曲家。但是当运行时

C:\Windows\System32>composer需要sendinblue/api-v3-sdk";8.x.x">

我有一个错误,由于我的php版本:

./composer.json has been created Running composer update
sendinblue/api-v3-sdk Loading composer repositories with package
information Updating dependencies Your requirements could not be
resolved to an installable set of packages.
Problem 1
- guzzlehttp/guzzle[7.4.0, ..., 7.4.1] require php ^7.2.5 || ^8.0 -> your php version (5.6.18) does not satisfy that requirement.
- sendinblue/api-v3-sdk v8.0.0 requires guzzlehttp/guzzle ^7.4.0 -> satisfiable by guzzlehttp/guzzle[7.4.0, 7.4.1].
- Root composer.json requires sendinblue/api-v3-sdk 8.x.x -> satisfiable by sendinblue/api-v3-sdk[v8.0.0].

这很奇怪,因为API v3 Php库需要Php 5.6及更高版本。

而且我无法在我的服务器上升级py.php版本。

我在生产服务器中使用下面的代码和来自PHP的简单的CURL,并且运行良好。使用composer,我很难管理库依赖关系,最终使用简单的CURL解决了这个问题。

// ********** API EMAIL START **************
$toName = 'TO NAME';
$toEmail = 'TO EMAIL';
$fromName = 'FROM NAME';
$fromEmail = 'FROM EMAIL';
$subject = 'TEST SUBJECT';
$htmlMessage = '<p>Hello '.$toName.',</p><p>This is my first transactional email sent from Sendinblue.</p>';
$data = array(
"sender" => array(
"email" => $fromEmail,
"name" => $fromName         
),
"to" => array(
array(
"email" => $toEmail,
"name" => $toName 
)
), 
"subject" => $subject,
"htmlContent" => '<html><head></head><body><p>'.$htmlMessage.'</p></p></body></html>'
); 
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.sendinblue.com/v3/smtp/email');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
$headers = array();
$headers[] = 'Accept: application/json';
$headers[] = 'Api-Key: YOUR API KEY';
$headers[] = 'Content-Type: application/json';  
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
curl_close($ch);
/*
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
print_r($result);
*/
// *********  EMAIL API END **********************

下载API包装器无法工作,因为它本身有依赖项(它依赖的其他代码(,而您尚未安装这些依赖项。

归档您正在尝试做的事情的最简单和最佳实践方法是使用composer。

  1. 下载并安装composer
  2. 运行composer require sendinblue/api-v3-sdk "8.x.x"

最后一个命令将自动为您安装所有依赖项并生成所需的自动加载器。

如果你是作曲家的新手,我建议你查看作曲家网站上的入门部分。

相关内容

  • 没有找到相关文章

最新更新