@easycode
не боюсь задавать глупые вопросы ))

Как передавать параметры при вызове команды через Plesk REST API?

Хочу установить автоответчик для существующего e-mail адреса на сервере через Plesk REST API
Пробую через вызов команды:

function setRequest($url, $headers, $post_fields)
{		
	$post_fields = json_encode( (array) $post_fields );
	$ch = curl_init($url); 
	curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 20); 
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
	curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
	curl_setopt($ch, CURLOPT_POST, 1);
	curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0);
	curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
	curl_setopt($ch, CURLOPT_ENCODING, 'UTF-8');
	curl_setopt($ch, CURLOPT_POSTFIELDS, $post_fields);    
	$response = curl_exec($ch); 
	curl_close($ch);
	return json_decode( $response, true );
}

var_dump( setRequest(
	'https://XXX.XXX.XXX.XXX:8443/api/v2/cli/autoresponder/call',
	array(
		'X-API-Key: c1986243-c4b7-0fc3-d543-67u9ad3a000a',
	), 
	array(
		'params'=> array(
			'--update',
			'mail' => 'administrator@mydomen.ru',
		),
	)
) );

получаю в ответ:

array(3) {
  ["code"]=>
  int(1)
  ["stdout"]=>
  string(0) ""
  ["stderr"]=>
  string(135) "Unknown option 'administrator@mydomen.ru': /usr/local/psa/admin/plib/api-cli/autoresponder.php --update >>>administrator@mydomen.ru"
}

как правильно передавать параметры при вызове (call) конкретной команды? что-то нигде не нахожу в документации разъяснений по формату JSON массива.
  • Вопрос задан
  • 387 просмотров
Решения вопроса 1
@easycode Автор вопроса
не боюсь задавать глупые вопросы ))
Оказалось всё просто:

var_dump( setRequest(
	'https://XXX.XXX.XXX.XXX:8443/api/v2/cli/autoresponder/call',
	array(
		'X-API-Key: c1986243-c4b7-0fc3-d543-67u9ad3a000a',
	), 
	array(
		'params'=> array(
			'--update',
			'-mail',
			'administrator@mydomen.ru',
			'-status',
			'true',
			'-subject',
			'Re: this subject text',
			'-text',
			'This is text email message!',
		),
	)
) );


Параметры пишутся как элементы массива по порядку - так как бы они шли в команде CLI, см. https://docs.plesk.com/en-US/onyx/cli-linux/using-...
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы