【问题标题】:Google API dailyLimitExceededUnregGoogle API dailyLimitExceededUnreg
【发布时间】:2015-04-12 19:43:10
【问题描述】:

我在 PHP 应用程序中使用 Google URL Shorter API。它已经工作了几个月,但现在我收到了这个错误:

[errors] => Array (
   [0] => stdClass Object (
      [domain] => usageLimits
      [reason] => dailyLimitExceededUnreg
      [message] => Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup.
      [extendedHelp] => https://code.google.com/apis/console
    )
)
[code] => 403
[message] => Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup.

我正在使用开发人员控制台中的服务器密钥,我重新生成了密钥,甚至删除了服务器访问密钥部分并重新添加了它,但我不断收到相同的身份验证错误。

$query_array = json_encode( array( "longUrl" => $data['long_url'], 'key' => 'AIza-Key' ) ); 

$curl = curl_init( 'https://www.googleapis.com/urlshortener/v1/url' );

curl_setopt($curl, CURLOPT_HTTPHEADER, array( 'Content-Type: application/json' ) );

curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

curl_setopt($curl, CURLOPT_POST, 1);

curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query( $query_array ) ) ;             

curl_setopt($curl, CURLINFO_HEADER_OUT, true);

$short_url = json_decode( curl_exec( $curl ) );

$header = curl_getinfo($curl, CURLINFO_HEADER_OUT );

curl_close( $curl );

print_r( $short_url ) ; // shows above error

这个 API 应该没有那么难,只需在 URL 字符串中添加服务器密钥,但我没有看到问题。有任何想法吗?

【问题讨论】:

  • 您应该向花时间回答您的人提供反馈(如果建议的解决方案对您有效,请接受)

标签: php api curl google-api


【解决方案1】:

您将 key 添加到 POST 正文中,而不是作为 URL 查询字符串。把代码改成这样:

$query_array = json_encode( array( "longUrl" => $data['long_url'] ) ); 

$curl = curl_init( 'https://www.googleapis.com/urlshortener/v1/url?key=AIza-Key' );

【讨论】:

  • docs state "获得 API 密钥后,您的应用程序可以将查询参数 key=yourAPIKey 附加到所有请求 URL。" $query_array 实际上并没有用于查询参数,而是用于 POST 正文。
  • 好吧,我猜是基于 Python API,您将所有内容放在同一个数组/字典中。我会删除评论。
猜你喜欢
  • 2020-05-02
  • 1970-01-01
  • 2017-08-23
  • 1970-01-01
  • 2015-03-28
  • 2023-03-13
  • 2014-03-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多