質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

8580閲覧

YouTubeAPI(v3)で検索処理をするとエラーとなります

axs

総合スコア29

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2018/01/07 06:42

編集2018/01/07 06:44

一日のうち少しの時間だけエラーとならない時があるのですが、大半がエラーとなります。

【エラー内容】
Warning: file_get_contents(https://www.googleapis.com/youtube/v3/search?key=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&q=&type=video&part=snippet,id): failed to open stream: HTTP request failed! HTTP/1.0 403 Forbidden in D:\php\xu8x.com\test.php on line 20

おそらくユニットが少ない設定なのかと思って設定で割り当てを最大値にして更新したりしてるのですがエラーが無くなりません。

コードに間違い箇所がありますでしょうか?

php

1<?php 2error_reporting(E_ALL & ~E_NOTICE); 3 4//youtubeのapiキーを取得 5$key = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'; 6 7$q = $_GET['q']; 8 9$feedURL = "https://www.googleapis.com/youtube/v3/search?key=$key&q=$q&type=video&part=snippet,id"; 10 11$feedURL.= "&regionCode=JP"; 12 13$feedURL.= "&chart=mostPopular"; 14 15//10件の検索結果を取得 16$feedURL.= "&maxResults=10"; 17 18 19 20$json = file_get_contents($feedURL); 21 22$arr = json_decode($json, true); 23 24?> 25<!DOCTYPE html> 26<html lang="ja"> 27<head> 28<meta charset="utf-8"> 29<link href="css/bootstrap.min.css" rel="stylesheet"> 30<title>youtube動画トレンド</title> 31 32<meta name="viewport" content="width=device-width, initial-scale=1"> 33 34</head> 35 36<body id="main" style="padding-top:70px;"> 37 <div class="navbar navbar-default navbar-fixed-top" role="navigation" > 38 <div class="container"> 39 <div class="navbar-header"> 40 <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse"> 41 <span class="sr-only">ナビゲーションの切替</span> 42 <span class="icon-bar"></span> 43 <span class="icon-bar"></span> 44 <span class="icon-bar"></span> 45 </button> 46 <a class="navbar-brand" href="">youtubeトレンド動画</a> 47 </div> 48 <div class="container"> 49 <div id="gnavi" class="collapse navbar-collapse"> 50 <ul class="nav navbar-nav"> 51 52 <li><a href="#"></a></li> 53 </ul> 54 </div> 55 </div> 56 </div> 57 </div><!-- /.navbar --> 58<div class="container"> 59 <form method="get"> 60 <div class="form-group"> 61 <input type="search" class="form-control" name="q" value="<?php echo $q; ?>" placeholder="検索ワード" /><br /> 62 63 <button type="submit" class="btn btn-default">検索</button> 64 </div> 65 66 </form> 67<?php 68foreach ($arr["items"] as $item) { 69 70 echo $item['snippet']['title'].'<br/>'; 71 72 echo "<iframe width=\"425\" height=\"350\" src=\"//www.youtube.com/embed/".$item['id']['videoId']."\" frameborder=\"0\" allowfullscreen></iframe><br /><br />"; 73 74} 75 76 77?> 78</div> 79</body> 80</html> 81

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

質問文のエラー部分にキーが出ていますよ。そのURLを取得すると下記JSONが返ってきます。Daily Limit Exceeded と出ているので、1日の検索上限に達したのでは?APIコンソールから確認できたと思いますので、御覧になってみては。

JSON

1{ 2 "error": { 3 "errors": [ 4 { 5 "domain": "usageLimits", 6 "reason": "dailyLimitExceeded", 7 "message": "Daily Limit Exceeded. The quota will be reset at midnight Pacific Time (PT). You may monitor your quota usage and adjust limits in the API Console: https://console.developers.google.com/apis/api/youtube.googleapis.com/quotas?project=587276332489", 8 "extendedHelp": "https://console.developers.google.com/apis/api/youtube.googleapis.com/quotas?project=587276332489" 9 } 10 ], 11 "code": 403, 12 "message": "Daily Limit Exceeded. The quota will be reset at midnight Pacific Time (PT). You may monitor your quota usage and adjust limits in the API Console: https://console.developers.google.com/apis/api/youtube.googleapis.com/quotas?project=587276332489" 13 } 14}

【API 使用の上限設定 - Cloud Platform Console ヘルプ】
https://support.google.com/cloud/answer/7035610?hl=ja

投稿2018/01/07 06:49

kei344

総合スコア69400

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

axs

2018/01/07 06:55

お返事ありがとうございます。 エラーのキーについては修正しました(^^;) やはり一日のリミットという事なんですかね。 長いあっという間にリミットに達してしまうものなんですね。 それとも割り当ての設定がうまく行ってないのか・・・ とりあえずはコードに間違いはないとのことで、ありがとうございました。 P.S. 公式ページ以外で、ユニットの割り当てのやり方を解説しているページがありましたら教えて頂ければと思います。 ありがとうございました。
kei344

2018/01/07 07:02

APIキーは削除して再取得することをお勧めします。(Google Developers Console で確認できるはずです)
axs

2018/01/07 07:04

了解しました。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問