Godaddy api授权错误

时间:2015-08-29 10:17:18

标签: php api godaddy-api

我正在尝试根据他们在此处提供的API {4}}为GoDaddy开发客户端应用程序 我有一个简单示例的问题,我正在尝试使用下一个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标头或其他参数?

3 个答案:

答案 0 :(得分:10)

您用于制作的关键和秘密是什么?当我完成整个过程时,默认情况下会创建一个TEST密钥/秘密,我认为这是针对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'

让我们知道它是如何运作的!

答案 1 :(得分:4)

问题在于我使用了TEST {KEY}:{SECRET}并设置了错误的网址。

对于测试{KEY}:{SECRET}网址必须为: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();
}

答案 2 :(得分:0)

我正在使用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));

上面的代码对我来说很好。