Указанный API предназначен для Cloudways. Документацию можно найти здесь: https://developers.cloudways.com/docs/# ... AppAliases
Конкретная конечная точка, о которой идет речь, – https://api.cloudways.com. /api/v1/app/manage/aliases
В PostMan я сначала нажимаю https://api.cloudways.com/api/v1/oauth/access_token, чтобы получить доступ жетон. Это работает нормально и выдает токен-носитель, как и ожидалось.
Оттуда я отправляю эти данные вместе как токен-носитель вместе с запрошенными параметрами.Я отправляю данные в виде необработанного JSON, и это выглядит так:
Код: Выделить всё
{
"server_id": 111111,
"app_id": 2222222,
"aliases": ["testing.somedomain.com", "another.somedomain.com"]
}
Оттуда я беру код, созданный PostMan, и вставляю его в метод моего контроллера.
Это код:
Код: Выделить всё
public function updateDomainAliases() {
$domainList = array();
foreach($allDomains as $key => $singleDomain) {
$domain = $singleDomain->subdomain.".".$singleDomain->domain;
$domainList[] = $domain;
}
$accessToken = $this->getAccessToken(env('CLOUDWAYS_EMAIL'), env('CLOUDWAYS_API_KEY'));
$domainResponse = $this->addDomainAliases($accessToken, env('CLOUDWAYS_SERVER_ID'), env('CLOUDWAYS_APP_ID'), $domainList);
}
private function getAccessToken($email, $apiKey) {
$response = Http::post('https://api.cloudways.com/api/v1/oauth/access_token', [
'email' => $email,
'api_key' => $apiKey,
]);
return $response->json()['access_token'];
}
private function addDomainAliases($accessToken, $serverID, $appID, $aliases) {
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://api.cloudways.com/api/v1/app/manage/aliases',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{
"server_id": 111111,
"app_id": 2222222,
"aliases": ["testing.somedomain.com", "another.subdomain.com"]
}',
CURLOPT_HTTPHEADER => array(
'Content-Type: application/json',
'Authorization: Bearer '.$accessToken
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
}
Затем я отправляю этот токен доступа в мою функцию addDomainAliases() вместе с идентификатором сервера, идентификатором приложения и псевдонимами, а затем запускаю команду cURL для отправки данных в API.
Здесь стоит отметить пару вещей:
- Изначально я установил идентификатор сервера, идентификатор приложения и псевдонимы в качестве переменных, которые я проходил... но когда это не сработало, я просто пытался заставить работать некоторые жестко запрограммированные значения. Я подозревал, что произошла какая-то ошибка в одинарных и двойных кавычках или в конкатенации строк. Итак, я подумал, что простое использование жестко закодированных значений решит проблему, и я смогу оттуда отладить. К сожалению... это не решило проблему.
- Я также пробовал использовать жестко запрограммированные токены доступа, но безрезультатно.
- Я также пробовал другие методы, например отправку данных через Guzzle, но все равно получаю ту же ошибку.
Я обращался в службу поддержки Cloudways, чтобы узнать, есть ли проблема с этой конкретной конечной точкой... но они, похоже, думают, что это что-то с кодом.
Редактировать:
Вот мои запросы почтальона:
Получение токена доступа:


Отправка данных псевдонима домена:

[img]https:/ /i.sstatic.net/XWRTA57c.png[/img]

Подробнее здесь: https://stackoverflow.com/questions/784 ... pplication