【问题标题】:Godaddy api authorization errorGodaddy api授权错误
【发布时间】:2015-08-29 10:17:17
【问题描述】:

我正在尝试根据他们在此处提供的 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();
}

而且我总是收到错误:“客户端错误:401”。我在使用 cURL 库时遇到了同样的问题。我没有找到任何在线支持。 我需要帮助,有人可以解释我应该如何在他们的 api 服务中授权吗?也许我需要发送任何其他 http 标头或其他参数?

【问题讨论】:

  • 您确定变量$myKey$mySecret 已定义且正确?
  • 当然是@CharlotteDunois

标签: php api godaddy-api


【解决方案1】:

您在生产中使用的密钥和秘密是什么?当我完成该过程时,默认情况下它会创建一个 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'

让我们知道结果如何!

【讨论】:

  • 哦!我正在使用默认情况下获得的 TEST 密钥/秘密。是的,你是对的,我已将 url 更改为 api.ote-godaddy.com,现在它运行良好。感谢您的帮助
  • 如何在 GoDaddy VPS 服务器中安装 oAuth? @大脑
  • @Rathinam 此问题涉及现已停产的 GoDaddy 云服务器产品。使用 VPS,所有这些配置都取决于您(不幸的是,我对它不太熟悉):(
  • 谢谢,我使用 Google 安装了 oauth。
【解决方案2】:

问题是我使用了 TEST {KEY}:{SECRET} 并设置了错误的 URL。

对于测试 {KEY}:{SECRET} URL 必须是:https://api.ote-godaddy.com

此外,检查域可用性(/v1/domains/available)的方法不需要标头中的参数“X-Shopper-Id”。没有它它工作得很好。带参数 X-Shopper-Id 请求返回错误“NOT_FOUND: The specified shopperId could not be found”(但这是另一个问题,可能我没有激活某些选项)

因此,如果要考虑所有更改,使用测试密钥/秘密检查域可用性的工作代码应该是这样的:

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();
}

【讨论】:

  • 太棒了,感谢您发布您的代码 sn-ps!真的很高兴你把它整理好了:)
  • 是否有任何沙箱可供 godaddy 使用,我可以在其中使用测试 api 密钥测试我的 api 调用。Godaddy 提供测试 api 密钥,但每当我尝试使用 api 调用购买域时,这对我也不起作用。
【解决方案3】:

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

上面的代码对我来说工作正常。

【讨论】:

    猜你喜欢
    • 2018-08-12
    • 2017-12-23
    • 1970-01-01
    • 2021-01-23
    • 1970-01-01
    • 1970-01-01
    • 2021-03-08
    • 2017-10-17
    • 2016-06-14
    相关资源
    最近更新 更多