2013-01-15 87 views
10

我認爲這將是直截了當的,但由於某種原因,我得到了這一錘。谷歌API返回訪問未配置

我使用PHP + CURL嘗試檢索Web字體列表。代碼很簡單:

 $url = "https://www.googleapis.com/webfonts/v1/webfonts?sort=popularity&key=MY_SERVER_APPS_KEY"; 

     $ch = curl_init(); 
     curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
     curl_setopt($ch, CURLOPT_HEADER, false); 
     curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
     curl_setopt($ch, CURLOPT_URL, $url); 
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); 
     $google_response = curl_exec($ch); 
     curl_close($ch);    

的代碼打穀歌,但$ google_response總是返回:

"error": { 
    "code": 403, 
    "errors": [ 
     { 
      "domain": "usageLimits", 
      "reason": "accessNotConfigured", 
      "message": "Access Not Configured" 
     } 
    ], 
    "message": "Access Not Configured" 
} 

我已經建立了一個服務器訪問鍵並把我的web服務器的API密鑰的兩它。 (爲了驗證我的IP,我在curlmyip.com上做了一個WGET)我也從服務選項卡啓用了「Web Fonts Developer API」。

有什麼我可以忽略的嗎?

回答

16

我找到了解決方案。顯然,我需要註冊我的服務器的IPv6地址,而不是IPv4的。在添加它們之後沒有任何代碼更改。

+0

嘿安東尼。應該在哪裏配置? –

+6

@KiranRuthR令人驚訝的隱藏。訪問https://code.google.com/apis/console。首先,確保您所需的服務在「服務」下啓用。然後轉到「API訪問」並指定您的呼叫域或IP地址。 – Anthony

+0

@Anthony:即使我使用我的本地主機也面臨同樣的問題。我應該添加我的本地主機的IPv6嗎? –

3

刪除所有 「允許Ips的」,那麼任何IP允許

+0

Brayon,解釋你如何配置允許的Ips? –

+0

謝謝。是的,刪除所有允許的IP爲我的「公共API訪問」服務器密鑰工作。它沒有立即工作(用cli curl測試),所以我重新生成了密鑰。新的一個立即工作,但幾分鐘後,原來的工作。 – dbenton

8

在我的情況所需的API未啓用

要啓用:

  1. 轉到https://console.developers.google.com
  2. 點擊頂部的菜單圖標,從菜單中左
  3. 點擊API Manager
  4. 搜索您在搜索欄中(API例如YouTube數據API v3)並點擊它
  5. 一旦在該API的子頁面上,點擊啓用在左上角