Почтовый запрос API работает в PostMan, но не в приложении LaravelPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Почтовый запрос API работает в PostMan, но не в приложении Laravel

Сообщение Anonymous »

Я пытаюсь отправить список псевдонимов домена в конечную точку API, и, как сказано в заголовке, он отлично работает в PostMan... но когда я пытаюсь добавить его в свое приложение Laravel, я получаю сообщение «502 Bad». Ошибка шлюза».
Указанный 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, я получаю статус 200 и могу проверить приложение и увидеть добавленные псевдонимы домена, как и ожидалось.
Оттуда я беру код, созданный 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;
}
Итак... как вы можете видеть, мой первый шаг — создание токена доступа, правильность работы которого проверяется простой командой dd().
Затем я отправляю этот токен доступа в мою функцию addDomainAliases() вместе с идентификатором сервера, идентификатором приложения и псевдонимами, а затем запускаю команду cURL для отправки данных в API.
Здесь стоит отметить пару вещей:
  • Изначально я установил идентификатор сервера, идентификатор приложения и псевдонимы в качестве переменных, которые я проходил... но когда это не сработало, я просто пытался заставить работать некоторые жестко запрограммированные значения. Я подозревал, что произошла какая-то ошибка в одинарных и двойных кавычках или в конкатенации строк. Итак, я подумал, что простое использование жестко закодированных значений решит проблему, и я смогу оттуда отладить. К сожалению... это не решило проблему.
  • Я также пробовал использовать жестко запрограммированные токены доступа, но безрезультатно.
  • Я также пробовал другие методы, например отправку данных через Guzzle, но все равно получаю ту же ошибку.

    Я обращался в службу поддержки Cloudways, чтобы узнать, есть ли проблема с этой конкретной конечной точкой... но они, похоже, думают, что это что-то с кодом.
Итак – обращаюсь к вам, добрые люди. Чего мне здесь не хватает?

Редактировать:
Вот мои запросы почтальона:
Получение токена доступа:
Изображение

Изображение

Отправка данных псевдонима домена:
Изображение
[img]https:/ /i.sstatic.net/XWRTA57c.png[/img]
Изображение


Подробнее здесь: https://stackoverflow.com/questions/784 ... pplication
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»