Я пытаюсь разработать клиентское приложение для GoDaddy на основе их API, которые они предоставляют здесь. Https://developer.godaddy.com И у меня есть проблема с простым примером. Я пытаюсь использовать следующий код PHP для проверки наличия домена:
use GuzzleHttp\Client; try { $client = new Client([ 'base_uri' => 'https://api.godaddy.com', ]); $responce = $client->get( '/v1/domains/available?domain=example.guru', [ 'headers' => [ 'Authorization' => "sso-key $myKey:$mySecret", 'X-Shopper-Id' => "$myID", 'Accept' => 'application/json', ] ] ); echo $responce->getBody(); } catch (Exception $e) { echo $e->getMessage(); }
И все время я получаю ошибку: «Ошибка клиента: 401». Такая же проблема у меня есть с использованием библиотеки cURL. Я не нашел никакой онлайн-поддержки. Мне нужна помощь, может кто-нибудь объяснить, как я должен авторизоваться в их службе api? Может быть, мне нужно отправить любые другие заголовки http или дополнительные параметры?
Являются ли ключ и секрет, которые вы используете для производства? Когда я просматриваю процесс, по умолчанию он создает ключ / секрет TEST, который, как я думаю, предназначен для https://api.ote-godaddy.com
Если вы используете производственные ключи, попробуйте выполнить ручной запрос Curl из команды like; что-то вроде:
curl -H 'Authorization: sso-key {KEY}:{SECRET}' -H 'Content-Type: application/json' https://api.godaddy.com/v1/domains/available?domain=example.guru'
Дайте нам знать, как это работает!
Проблема заключалась в том, что я использовал TEST {KEY}: {SECRET} и установил неверный URL.
Для теста {KEY}: {SECRET} URL должен быть: https://api.ote-godaddy.com .
Также для проверки доступности домена (/ v1 / domains / available) не нужен параметр «X-Shopper-Id» в заголовке. Он работает без него. С параметром X-Shopper-Id запрос возвращает ошибку «NOT_FOUND: указанный shopperId не может быть найден» (но это другая проблема, возможно, я не активировал какой-либо вариант)
Поэтому, если учесть все изменения, рабочий код для проверки доступности домена с тестовым ключом / секретом должен выглядеть следующим образом:
use GuzzleHttp\Client; try { $client = new Client([ 'base_uri' => 'https://api.ote-godaddy.com' ]); $responce = $client->get( '/v1/domains/available?domain=example.guru', [ 'headers' => [ 'Authorization' => "sso-key $myKey:$mySecret", 'Accept' => 'application/json', ] ] ); echo $responce->getBody(); } catch (Exception $e) { echo $e->getMessage(); }
Я использую php и curl.
$domain = "jaisinghverma.com";<br> $apiURL = 'https://api.ote-godaddy.com/v1/domains/available? domain='.$domain.'&checkType=FULL&forTransfer=false';<br> $headers = array( 'Accept: application/json', 'Authorization: sso-key 2s83RziEFz_WKH7uMvTTgWX5RqNxADNTe:WKHARxNruKHyL3XbjoMp44', );<br> $ch = curl_init();<br> curl_setopt($ch, CURLOPT_URL, $apiURL);<br> curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);<br> curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);<br> $server_output = curl_exec ($ch);<br> curl_close ($ch);<br> print_r(json_decode($server_output));
выше код работает отлично для меня.