Ini adalah SDK PHP resmi untuk CloudConvert API v2 .
Untuk menginstal PHP SDK Anda harus menggunakan Komposer di proyek Anda.
Instal SDK bersama Guzzle:
composer require cloudconvert/cloudconvert-php guzzlehttp/guzzle
Paket ini tidak terikat dengan klien HTTP tertentu dengan menggunakan PSR-7, PSR-17, PSR-18, dan HTTPlug. Oleh karena itu, Anda juga perlu menginstal paket yang menyediakan psr/http-client-implementation
dan psr/http-factory-implementation
(misalnya Guzzle).
use CloudConvert CloudConvert ;
use CloudConvert Models Job ;
use CloudConvert Models Task ;
$ cloudconvert = new CloudConvert ([
' api_key ' => ' API_KEY ' ,
' sandbox ' => false
]);
$ job = ( new Job ())
-> setTag ( ' myjob-1 ' )
-> addTask (
( new Task ( ' import/url ' , ' import-my-file ' ))
-> set ( ' url ' , ' https://my-url ' )
)
-> addTask (
( new Task ( ' convert ' , ' convert-my-file ' ))
-> set ( ' input ' , ' import-my-file ' )
-> set ( ' output_format ' , ' pdf ' )
-> set ( ' some_other_option ' , ' value ' )
)
-> addTask (
( new Task ( ' export/url ' , ' export-my-file ' ))
-> set ( ' input ' , ' convert-my-file ' )
);
$ cloudconvert -> jobs ()-> create ( $ job )
Anda dapat menggunakan CloudConvert Job Builder untuk melihat opsi yang tersedia untuk berbagai jenis tugas.
Unggahan ke CloudConvert dilakukan melalui tugas import/upload
(lihat dokumen). SDK ini menawarkan metode pengunggahan yang mudah:
use CloudConvert Models Job ;
use CloudConvert Models Task ;
$ job = ( new Job ())
-> addTask ( new Task ( ' import/upload ' , ' upload-my-file ' ))
-> addTask (
( new Task ( ' convert ' , ' convert-my-file ' ))
-> set ( ' input ' , ' upload-my-file ' )
-> set ( ' output_format ' , ' pdf ' )
)
-> addTask (
( new Task ( ' export/url ' , ' export-my-file ' ))
-> set ( ' input ' , ' convert-my-file ' )
);
$ job = $ cloudconvert -> jobs ()-> create ( $ job );
$ uploadTask = $ job -> getTasks ()-> whereName ( ' upload-my-file ' )[ 0 ];
$ cloudconvert -> tasks ()-> upload ( $ uploadTask , fopen ( ' ./file.pdf ' , ' r ' ), ' file.pdf ' );
Metode upload()
menerima string, sumber daya PHP, atau PSR-7 StreamInterface
sebagai parameter kedua.
Anda juga dapat langsung mengizinkan klien mengunggah file ke CloudConvert:
< form action =" <?=$uploadTask->getResult()->form->url?> "
method =" POST "
enctype =" multipart/form-data " >
< ? foreach ((array)$uploadTask- > getResult()- > form- > parameters as $parameter = > $value) { ? >
< input type =" hidden " name =" <?=$parameter?> " value =" <?=$value?> " >
< ? } ? >
< input type =" file " name =" file " >
< input type =" submit " >
</ form >
CloudConvert dapat menghasilkan URL publik untuk menggunakan tugas export/url
. Anda dapat menggunakan PHP SDK untuk mengunduh file keluaran ketika Pekerjaan selesai.
$ cloudconvert -> jobs ()-> wait ( $ job ); // Wait for job completion
foreach ( $ job -> getExportUrls () as $ file ) {
$ source = $ cloudconvert -> getHttpTransport ()-> download ( $ file -> url )-> detach ();
$ dest = fopen ( ' output/ ' . $ file -> filename , ' w ' );
stream_copy_to_stream ( $ source , $ dest );
}
Metode download()
mengembalikan PSR-7 StreamInterface
, yang dapat digunakan sebagai sumber daya PHP menggunakan detach()
.
Webhook dapat dibuat di Dasbor CloudConvert dan Anda juga dapat menemukan rahasia penandatanganan yang diperlukan di sana.
$ cloudconvert = new CloudConvert ([
' api_key ' => ' API_KEY ' ,
' sandbox ' => false
]);
$ signingSecret = ' ... ' ; // You can find it in your webhook settings
$ payload = @ file_get_contents ( ' php://input ' );
$ signature = $ _SERVER [ ' HTTP_CLOUDCONVERT_SIGNATURE ' ];
try {
$ webhookEvent = $ cloudconvert -> webhookHandler ()-> constructEvent ( $ payload , $ signature , $ signingSecret );
} catch ( CloudConvert Exceptions UnexpectedDataException $ e ) {
// Invalid payload
http_response_code ( 400 );
exit ();
} catch ( CloudConvert Exceptions SignatureVerificationException $ e ) {
// Invalid signature
http_response_code ( 400 );
exit ();
}
$ job = $ webhookEvent -> getJob ();
$ job -> getTag (); // can be used to store an ID
$ exportTask = $ job -> getTasks ()
-> whereStatus ( Task :: STATUS_FINISHED ) // get the task with ' finished ' status . . .
-> whereName ( ' export-it ' )[ 0 ]; // ... and with the name 'export-it'
// ...
Alternatifnya, Anda dapat membuat WebhookEvent
menggunakan PSR-7 RequestInterface
:
$ webhookEvent = $ cloudconvert -> webhookHandler ()-> constructEventFromRequest ( $ request , $ signingSecret );
URL yang ditandatangani memungkinkan konversi file sesuai permintaan hanya menggunakan parameter kueri URL. PHP SDK memungkinkan untuk menghasilkan URL tersebut. Oleh karena itu, Anda perlu mendapatkan basis URL yang ditandatangani dan rahasia penandatanganan di Dasbor CloudConvert.
$ cloudconvert = new CloudConvert ([
' api_key ' => ' API_KEY ' ,
' sandbox ' => false
]);
$ job = ( new Job ())
-> addTask (
( new Task ( ' import/url ' , ' import-my-file ' ))
-> set ( ' url ' , ' https://my.url/file.docx ' )
)
-> addTask (
( new Task ( ' convert ' , ' convert-my-file ' ))
-> set ( ' input ' , ' import-my-file ' )
-> set ( ' output_format ' , ' pdf ' )
)
-> addTask (
( new Task ( ' export/url ' , ' export-my-file ' ))
-> set ( ' input ' , ' convert-my-file ' )
);
$ signedUrlBase = ' SIGNED_URL_BASE ' ;
$ signingSecret = ' SIGNED_URL_SIGNING_SECRET ' ;
$ url = $ cloudConvert -> signedUrlBuilder ()-> createFromJob ( $ signedUrlBase , $ signingSecret , $ job , ' CACHE_KEY ' );
Secara default, wilayah dalam pengaturan akun Anda digunakan. Alternatifnya, Anda dapat mengatur wilayah tetap:
// Pass the region to the constructor
$ cloudconvert = new CloudConvert ([
' api_key ' => ' API_KEY ' ,
' sandbox ' => false ,
' region ' => ' us-east '
]);
vendor/bin/phpunit --testsuite unit
vendor/bin/phpunit --testsuite integration
Secara default, ini menjalankan pengujian integrasi terhadap Sandbox API dengan akun CloudConvert resmi. Jika Anda ingin menggunakan akun Anda sendiri, Anda dapat mengatur kunci API Anda menggunakan variabel lingkungan CLOUDCONVERT_API_KEY
. Dalam hal ini Anda perlu memasukkan hash MD5 berikut ke dalam daftar putih untuk Sandbox API (menggunakan dasbor CloudConvert).
53d6fe6b688c31c565907c81de625046 input.pdf
99d4c165f77af02015aa647770286cf9 input.png