Skip to main content
Participant
February 17, 2025
Question

Getting "not authorised to perform the operation." while trying to combinepdf

  • February 17, 2025
  • 2 replies
  • 288 views

I'm trying to use the combine pdf function but I always get this:

{"error":{"code":"UNAUTHORIZED","message":"Not authorised to perform the operation."}}

Before the final "operation/combinepdf " request I succesfully get an access token, get two urls with "assets" and upload the two files I need to combine.

Also tried to get download uri with "/assets/{assetId}" and it works correctly.

Anyone can help me?

2 replies

Participant
March 19, 2025

Have the same issue while trying to extract text from a PDF.  I have isolated the problem to be from the call to convert -- all preceding authetication, asset upload, etc, works. Anybody have updates?

Adobe Employee
February 18, 2025

Can you supply your code

alescanAuthor
Participant
February 19, 2025

Here's the code:

$url="https://pdf-services-ue1.adobe.io/token";
$headers=array(
  'Content-Type:application/x-www-form-urlencoded',
);
$ch=curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_POST,true);
curl_setopt($ch,CURLOPT_POSTFIELDS,"client_id={$cmyclientid}&client_secret={$mysecret}");
curl_setopt($ch,CURLOPT_HTTPHEADER,$headers);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLINFO_HEADER_OUT,true);
$response=curl_exec($ch);
curl_close($ch);
$token=json_decode($response,true);
//URL FILE 1 -----------------------------------------------------------------------------
$url="https://pdf-services-ue1.adobe.io/assets";
$headers=array(
  'Content-Type:application/json',
	"Authorization:Bearer {$token['access_token']}",
	"x-api-key: {$cmyclientid}",
);
$ch=curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_POST,true);
curl_setopt($ch,CURLOPT_POSTFIELDS,'{"mediaType":"application/pdf"}');
curl_setopt($ch,CURLOPT_HTTPHEADER,$headers);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLINFO_HEADER_OUT,true);
$response=curl_exec($ch);
curl_close($ch);
$asset1=json_decode($response,true);
//UPLOAD FILE 1 -----------------------------------------------------------------------------
$url=$asset1['uploadUri'];
$headers=array(
  'Content-Type: application/pdf',
);
$ch=curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_CUSTOMREQUEST,'PUT');
curl_setopt($ch,CURLOPT_POSTFIELDS,file_get_contents('Manual-ENG-HopperCD-Discriminator-II.pdf'));
curl_setopt($ch,CURLOPT_HTTPHEADER,$headers);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLINFO_HEADER_OUT,true);
$response=curl_exec($ch);
curl_close($ch);
//URL FILE 2 -----------------------------------------------------------------------------
$url="https://pdf-services-ue1.adobe.io/assets";
$headers=array(
  'Content-Type:application/json',
	"Authorization:Bearer {$token['access_token']}",
	"x-api-key: {$cmyclientid}",
);
$ch=curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_POST,true);
curl_setopt($ch,CURLOPT_POSTFIELDS,'{"mediaType":"application/pdf"}');
curl_setopt($ch,CURLOPT_HTTPHEADER,$headers);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLINFO_HEADER_OUT,true);
$response=curl_exec($ch);
curl_close($ch);
$asset2=json_decode($response,true);
//UPLOAD FILE 2 -----------------------------------------------------------------------------
$url=$asset2['uploadUri'];
$headers=array(
  'Content-Type: application/pdf',
);
$ch=curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_CUSTOMREQUEST,'PUT');
curl_setopt($ch,CURLOPT_POSTFIELDS,file_get_contents('modulo_imposta_bollo.pdf'));
curl_setopt($ch,CURLOPT_HTTPHEADER,$headers);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLINFO_HEADER_OUT,true);
$response=curl_exec($ch);
curl_close($ch);
//COMBINE FILE -----------------------------------------------------------------------------
$url="https://pdf-services-ue1.adobe.io/operation/combinepdf";
$headers=array(
  'Content-Type:application/json',
	"Authorization:Bearer {$token['access_token']}",
	"x-api-key: {$cmyclientid}",
);
$body='{"assets":[{"assetID":"'.$asset1['assetID'].'"},{"assetID":"'.$asset2['assetID'].'"}]}';
$ch=curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_POST,true);
curl_setopt($ch,CURLOPT_POSTFIELDS,$body);
curl_setopt($ch,CURLOPT_HTTPHEADER,$headers);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLINFO_HEADER_OUT,true);
echo $response=curl_exec($ch);
curl_close($ch);
$information=curl_getinfo($ch);
print_r($information);