Hi,
I am Using RingCentral Connect Platform PHP SDK (https://github.com/ringcentral/ringcentral-php) to send fax messages, I get a curl error when i run the script. I have a developer account and testing the authenticate and Fax message and it works fine.
Error details:
Warning: curl_close(): 28 is not a valid cURL handle resource in <path_to_project>\vendor\ringcentral\ringcentral-php\src\Http\Client.php on line 104 Fatal error: Uncaught exception 'InvalidArgumentException' with message 'Invalid response string' in vendor\ringcentral\psr7\src\functions.php:478 Stack trace: #0 <path_to_project>\vendor\ringcentral\ringcentral-php\src\Http\ApiResponse.php(56): RingCentral\Psr7\parse_response('HTTP/1.1 0 OK??') #1 <path_to_project>\vendor\ringcentral\ringcentral-php\src\Http\Client.php(99): RingCentral\SDK\Http\ApiResponse->__construct(Object(RingCentral\Psr7\Request), false, 0) #2 <path_to_project>\vendor\ringcentral\ringcentral-php\src\Http\Client.php(25): RingCentral\SDK\Http\Client->loadResponse(Object(RingCentral\Psr7\Request)) #3 <path_to_project>\vendor\ringcentral\ringcentral-php\src\Platform\Platform.php(214): RingCentral\SDK\Http\Client->send(Object(RingCentral\Psr7\Request)) #4 <path_to_project>\vendor\ringcentral\ringcentral-php\src\Platform\Platform.php(301): RingCentral\SDK\Platform\Platform->sendReq in C:\inetpub\wwwroot\erexpress\public\vendor\ringcentral\ringcentral-php\src\Http\Client.php on line 44
Sample code (basically the sample code from - https://github.com/ringcentral/ringcentral-php/blob/master/demo/fax.php):
<?php
use RingCentral\SDK\SDK;
require_once(__DIR__.'/vendor/autoload.php');
$credentials = require(__DIR__ . '/vendor/ringcentral/ringcentral-php/demo/_credentials.php');
// Authorize
$platform->login($credentials['username'], $credentials['extension'], $credentials['password']);
// Find Fax-enabled phone number that belongs to extension
$phoneNumbers = $platform->get('/account/~/extension/~/phone-number', array('perPage' => 'max'))
->json()->records;
print 'Fax Phone Number: ' . $credentials['username'] . PHP_EOL;
// Send Fax
$request = $rcsdk->createMultipartBuilder()
->setBody(array(
'to' => array(
array('phoneNumber' => $credentials['username']),
),
'faxResolution' => 'High',
))
->add('Plain Text', 'file.txt')
->add(fopen('https://developers.ringcentral.com/assets/images/ico_case_crm.png', 'r'))
->request('/account/~/extension/~/fax');
//print $request->getBody() . PHP_EOL;
$response = $platform->sendRequest($request);
print 'Sent Fax ' . $response->json()->uri . PHP_EOL;
We have resolved the issue we came across while trying to integrate Ringcentral PHP SDK. The issue was caused due to cURL SSL certificate issue.
Curl error: SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed. Copied cacert.pem file and modified php.ini with the path to cacert.pem and it works.
Thank you for your support.
Please take a look at our API Explorer to send Fax here :
http://ringcentral.github.io/api-explorer/#!/Messaging/v1_0_account__accountId__extension__extension...
However, you could create a .pdf format file and you could have it included as your attachment before sending the fax.
Hi,
Can you tell me how i can format the fax message into a proper content with bold and next line
eg:
$request = $rcsdk->createMultipartBuilder()Right now the content shows up in the fax message as such:
->setBody(array(
'to' => array(
array('phoneNumber' => '12672800722'),
'faxResolution' => 'High',))
->add('Plain Text <Br> <b> Hello </b>', 'file.txt')
->request('/account/~/extension/~/fax');
Plain Text <Br> <b> Hello </b>.Can we have html formatting:
Plain Text
Hello.
I copied your code and tried to run it.
Errors:
Error 1 - Fatal error: Class 'RingCentral\SDK\SDK' not found in C:\inetpub\wwwroot\ringcentral-php-demo\app\authenticate.php on line 10
The vendor\ringcentral\ringcentral-php folder was empty, so i downloaded the zip file from https://github.com/ringcentral/ringcentral-php and pasted those files in the folder. The error disappears which leads to Error 2
Error 2 - Fatal error: Interface 'Psr\Http\Message\RequestInterface' not found in C:\inetpub\wwwroot\ringcentral-php-demo\vendor\ringcentral\psr7\src\Request.php on line 13
Please take a look at the file named " sendFax.php" in the Github Repo and you could modify the code accordingly within your application:
https://github.com/anilkumarbp/ringcentral-php-demo
Thank you for your response. I did instantiate the SDK Object. Somehow missed pasting it in sample code above.
I get the same error when i substituted the reference code you provided
Fatal error: Uncaught exception 'InvalidArgumentException' with message 'Invalid response string' in vendor\ringcentral\psr7\src\ functions.php:478This error occurs when i try to call the
Stack trace:
#0 <path_to_project>\vendor\ringcentral\ringcentral-php\src\Http\ ApiResponse.php(56): RingCentral\Psr7\parse_response('HTTP/1.1 0 OK??')
#1 <path_to_project>\vendor\ringcentral\ringcentral-php\src\Http\ Client.php(99): RingCentral\SDK\Http\ApiResponse->__construct(Object(RingCentral\Psr7\Request), false, 0)
#2 <path_to_project>\vendor\ringcentral\ringcentral-php\src\Http\ Client.php(25): RingCentral\SDK\Http\Client->loadResponse(Object(RingCentral\Psr7\Request))
#3 <path_to_project>\vendor\ringcentral\ringcentral-php\src\Platform\ Platform.php(214): RingCentral\SDK\Http\Client->send(Object(RingCentral\Psr7\Request))
#4 <path_to_project>\vendor\ringcentral\ringcentral-php\src\Platform\ Platform.php(301): RingCentral\SDK\Platform\Platform->sendReq in C:\inetpub\wwwroot\erexpress\public\vendor\ringcentral\ringcentral-php\src\Http\ Client.php on line 44
// Authorize call
$platform->login($credentials['username'], $credentials['extension'], $credentials['password'], true);
Did you instantiate the SDK Object within the sample code that your are using to Authenticate and Send Fax :
Please include this code within your demo application :
// Create SDK instance
$rcsdk = new SDK($credentials['appKey'], $credentials['appSecret'], $credentials['server'], 'Demo', '1.0.0');If you take a lookat our Demo Folder within the SDK you would see a file named "_credentialsSample.json" . Please make sure you are using all the details on your sandbox account like appKey, appSecret and the credentials on your sandbox account etc.
$platform = $rcsdk->platform();
Also for your reference, i am providing a sample code below to Authenticate and Send Fax :
$credentials_file = count($argv) > 1 ? $argv[1] : __DIR__ . '/_credentialsSample.json';
$credentials = json_decode(file_get_contents($credentials_file), true);
// Create SDK instance
$rcsdk = new SDK($credentials['appKey'], $credentials['appSecret'], $credentials['server'], 'Demo', '1.0.0');
$platform = $rcsdk->platform();
// // Authorize
$platform->login($credentials['username'], $credentials['extension'], $credentials['password'], true);
$request = $rcsdk->createMultipartBuilder()
->setBody(array(
'to' => array(
array('phoneNumber' => 'toNumber'),
),
'faxResolution' => 'High',
))
->add('Plain Text', 'file.txt')
->add(fopen('https://developers.ringcentral.com/assets/images/ico_case_crm.png', 'r'))
->request('/account/~/extension/~/fax');
$response = $platform->sendRequest($request);
print_r("Request");
print_r($response->request()-> getHeaders());
print_r("Response");
print_r($response->raw());
A new Community is coming to RingCentral!
Posts are currently read-only as we transition into our new platform.We thank you for your patience
during this downtime.
Try Workflow Builder
Did you know you can easily automate tasks like responding to SMS, team messages, and more? Plus it's included with RingCentral Video and RingEX plans!Try RingCentral Workflow Builder