Правильное формирование HTML-контента для факса, отправленного с помощью RingCentral API

Содержимое HTML, отправленное для факса через API-интерфейс RingCentral, не отформатировано в правильном порядке.

Код, который я использовал:

    // The HTML content to be sent
$html = "<h3>Notification</h3><div>Lorem epsum Lorem epsum Lorem epsum Lorem epsum <b>My Site</b>Lorem epsum Lorem epsum</div><div><br></div><div>Lorem epsumLorem epsumLorem epsum<i><b>Lorem epsumLorem epsumLorem epsum</b></i>.</div><div><br></div><div>To view more and print more details,&nbsp;please log in to&nbsp;<a href='http://www.demo.mysite.com' target='_blank'>www.demo.mysite.com</a>&nbsp;using your email address.</div><div><br></div><div>Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum</div>";

// Creating a file
$fileRand = rand();
$filename = 'faxfile_'.$fileRand.'.html';

// Open the file in write mode
$faxFile = fopen('ringfax/'.$filename, 'w');

// Write the contents to the html file.
fwrite($faxFile, $html);

// Close the file.
fclose($faxFile);

// Setting up data for the RingCentral API
$faxData['Username']  = "XXXXXXXXXX";
$faxData['Password']  = "XXXXXXXXXX";
$faxData['Recipient'] = "XXXXXXXXXX";
$faxData['Sendtime']  = gmdate('d:m:y h:m');
$faxData['Coverpage'] = 0;
$faxData['Attachment'] = '@'.realpath('ringfax/'.$filename).';filename='.$filename.';content-type=text/html';

// Open connection
$ch = curl_init();

// Set the url, number of POST vars and other data
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_URL, 'https://service.ringcentral.com/faxapi.asp?');
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Accept: text/html", "charset: UTF-8"));
curl_setopt($ch, CURLOPT_POST, count($faxData));
curl_setopt($ch, CURLOPT_POSTFIELDS, $faxData);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

// Execute post
$result = curl_exec($ch);

// Receives curl error
$cErr = curl_error($ch);
// curl curl info
$cInfo = curl_getinfo($ch);

// Write the error to the log file
ini_set("log_errors", 1);
ini_set("error_log", "logs/ring_central_error");
error_log($result);

//close connection
curl_close($ch);

// Delete the file
unlink('ringfax/'.$filename);

Факс отправляется, но содержимое факса не форматируется так, как мы хотели.
Содержание в факсе выглядит примерно так:

Notification Lorem epsum Lorem epsum Lorem epsum Lorem epsum&Acirc;&nbsp;My Site&Acirc;&nbsp;Lorem epsum Lorem epsumLorem epsumLorem epsumLorem epsum Lorem epsumLorem epsumLorem epsum To view more and print more details, please log in to&Acirc;&nbsp;www.demo.mysite.com&Acirc;&nbsp;using your email address.Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum.

Я почти уверен, что это должен быть тип заголовка или что-то, что не устанавливается должным образом, и именно поэтому API-интерфейс RingCentral ведет себя так.

Заранее спасибо.

1

Решение

Похоже, вы используете старую версию API факса. Не могли бы вы взглянуть на API в руководстве разработчика здесь:

https://developer.ringcentral.com/api-docs/latest/index.html#!#FaxMessages.html

2

Другие решения

Вы также можете использовать RingCentral PHP SDK для нового API, который будет создавать правильно отформатированные запросы:

Вот немного кода PHP из README.md:

$request = $rcsdk->createMultipartBuilder()
->setBody(array(
'to' => array(
array('phoneNumber' => '16501112233'),
),
'faxResolution' => 'High',
))
->add('Plain Text', 'file.txt')
->add(fopen('path/to/file', 'r'))
->request('/account/~/extension/~/fax'); // also has optional $method argument

$response = $platform->sendRequest($request);
0

По вопросам рекламы [email protected]