

次のURLでリクエストしたところ以下のエラーが出てしまいました｡

**エラー内容:**

[code]

    01-22 22:24:43.326  23433-23461/com.hoge.piyo.buzz E/Volley﹕ 
        [2094]    BasicNetwork.performRequest: Unexpected response code 400 for 
            https://www.googleapis.com/youtube/v3/search?q=%E3%81%BB%E3%81%92&part=id,snippet&maxResults=20&order=viewCount&type=video&videoDefinition=high&publishedAfter=2015-01-21T10:24:42Z&key=API_KEY
    
[/code]

ブラウザで､APIKeyを取得して実行したところ正常な結果を受け取ることが出来ました｡

APIKeyの取得も問題ないはずです｡

すみません｡ 上記のリクエストですが､APIKeyを定数として記述することを忘れていました｡ 申し訳ありません｡
しかし､それを直し実行したところ､今度は以下のようなエラーが出てしまいました｡

**エラー内容**

[code]

    01-23 19:39:27.832  16150-16194/com.hoge.piyo.buzz E/Volley﹕ [4276] BasicNetwork.performRequest: Unexpected response code 403 for https://www.googleapis.com/youtube/v3/search?q=hoge&part=id,snippet&maxResults=20&order=viewCount&type=video&videoDefinition=high&publishedAfter=2015-01-22T07:39:27Z&key=API_KEY
    
[/code]

**ログ出力**  
`com.android.volley.AuthFailureError`

また､サーバーのレスポンスを表示するには次の命令であっていますか?  
`Log.e("tag", new String(error.networkResponse.data, error));`  
これを､記述すると`String(byte[], com.volley.VolleyError)`とでて実行できません｡

レスポンスの内容をLogに表示したところ次のような結果を得られました｡  
**レスポンスのログ出力:**

[code]

      "error": {
    "errors": [
    {
    "domain": "usageLimits",
    "reason": "accessNotConfigured",
    "message": "Access Not Configured. The API is not enabled for your project, or there is a per-IP or per-Referer restriction configured on your API key and the request does not match these restrictions. Please use the Google Developers Console to update your configuration.",
    "extendedHelp": "https://console.developers.google.com"
    }
    ],
    "code": 403,
    "message": "Access Not Configured. The API is not enabled for your project, or there is a per-IP or per-Referer restriction configured on your API key and the request does not match these restrictions. Please use the Google Developers Console to update your configuration."
    }
    }
    com.android.volley.AuthFailureError
            at com.android.volley.toolbox.BasicNetwork.performRequest(BasicNetwork.java:159)
            at com.android.volley.NetworkDispatcher.run(NetworkDispatcher.java:112)
    
[/code]

私も､APIKeyが間違っていると思い､APIKeyを再発行したり､Packageが間違っていないか確かめたのですが､何故かうまくいきません｡


CC BY-SA 3.0
2015-01-22T13:34:23.413
5092
2015-01-24T09:16:45.433
2015-01-23T12:02:06.067
7232
7232
question
android youtube-data-api android-volley
Volley で YouTube Data API の検索結果をリクエストする｡


> "message": "Access Not Configured. The API is not enabled for your project,
> or there is a per-IP or per-Referer restriction configured on your API key
> and the request does not match these restrictions. Please use the Google
> Developers Console to update your configuration."

このエラーメッセージは、API
KEYを作るときに設定した「許可対象IPアドレス」の設定が間違っている場合に表示されました。（他のケースでも表示されるかもしれませんが）  
試しに、Developers Consoleの「API
と認証」＞「認証情報」画面にある「許可対象IPアドレスを編集」で、IPアドレスを`0.0.0.0/0`にして試してみると良いと思います（僕が試したときは、反映に数分かかったので、効いてない？と思ったら暫く待ってみると良いかも）

また、Android用に作成されたApiKeyが必要かどうかAndroidで試してみましたが、サーバ用のキーで問題無く動作することを確認できました。（とはいえ、アプリを一般配布したりするのであれば、Android用に設定したキーを使うべきです。そうしないと、あなたのApiKeyを使って悪意の第三者が大量のAPIリクエストを実行できてしまったりします）

追記；  
Android用のApiKey発行のために、署名キーのフィンガープリントが必要です。僕は以下が参考になりました。  
署名キーストアの作り方：  
<http://techbooster.org/android/environment/1445/>  
署名キーのフィンガープリント取得方法：  
<http://www.ipentec.com/document/document.aspx?page=android-get-certificate-
fingerprints>


CC BY-SA 3.0
2015-01-24T09:16:45.433
5200
2015-01-24T09:16:45.433
7572
5092
answer