Godaddy api 授权错误
Godaddy api authorization error
我正在尝试根据他们在此处提供的 API 为 GoDaddy 开发客户端应用程序 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();
}
而且我总是收到错误消息:"Client error: 401"。我在使用 cURL 库时遇到了同样的问题。我没有找到任何在线支持。
我需要帮助,有人可以解释我应该如何在他们的 api 服务上授权吗?也许我需要发送任何其他 http headers 或其他参数?
您用于生产的密钥和秘密是什么?当我完成这个过程时,默认情况下它会创建一个 TEST key/secret,我认为这是为了反对 https://api.ote-godaddy.com
如果您使用的是生产密钥,请尝试通过以下命令手动执行 Curl 请求;类似于:
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) 不需要 header 中的参数 'X-Shopper-Id'。没有它也能很好地工作。 With parameter X-Shopper-Id request returns error "NOT_FOUND: The specified shopperId could not be found"(但这是其他问题,可能是我没有激活某些选项)
因此,如果考虑到所有更改,使用测试 key/secret 检查域可用性的工作代码应该是这样的:
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 ?????????',
);<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));
以上代码对我来说工作正常。
我正在尝试根据他们在此处提供的 API 为 GoDaddy 开发客户端应用程序 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();
}
而且我总是收到错误消息:"Client error: 401"。我在使用 cURL 库时遇到了同样的问题。我没有找到任何在线支持。 我需要帮助,有人可以解释我应该如何在他们的 api 服务上授权吗?也许我需要发送任何其他 http headers 或其他参数?
您用于生产的密钥和秘密是什么?当我完成这个过程时,默认情况下它会创建一个 TEST key/secret,我认为这是为了反对 https://api.ote-godaddy.com
如果您使用的是生产密钥,请尝试通过以下命令手动执行 Curl 请求;类似于:
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) 不需要 header 中的参数 'X-Shopper-Id'。没有它也能很好地工作。 With parameter X-Shopper-Id request returns error "NOT_FOUND: The specified shopperId could not be found"(但这是其他问题,可能是我没有激活某些选项)
因此,如果考虑到所有更改,使用测试 key/secret 检查域可用性的工作代码应该是这样的:
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 ?????????',
);<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));
以上代码对我来说工作正常。