前提・実現したいこと
Googleカレンダーapiを使って、カレンダーから予定を取得したいです。
こちらを参考に、Monacaを使って作っており、このサイトに載っているサンプルコードは正常に動作しました。
しかし私がしたいことはカレンダーから予定を取得することなので、サンプルコードのカレンダーIDを日本の休日のものから、自分のカレンダーIDに変更したところ、404エラーを出すようになりました。
(カレンダーIDはGoogleカレンダートップ > マイカレンダー > テスト用に新しく作成したカレンダーのオーバーフローメニュー(三つの点のアイコン) > 設定と共有 > カレンダーの統合 > カレンダーIDの手順で取得しました)
404エラーを出さないようにするためにはどのようにすればいいでしょうか?
試したこと
・apiに渡しているURLにアクセスしてみると以下のような結果になったため、ページが存在していないわけでは無さそうでした。
{ "error": { "code": 403, "message": "The request is missing a valid API key.", "errors": [ { "message": "The request is missing a valid API key.", "domain": "global", "reason": "forbidden" } ], "status": "PERMISSION_DENIED" } }
・apiのドキュメントの横にある「Try this API」の部分でソースコードで使用しているcalendarIDを使って試したところ、ちゃんと予定が取得できました。
・エラー一覧の404の項目を確認しましたが、原因がよく分かりませんでした。
該当のソースコード
HTML
1<!DOCTYPE HTML> 2<html> 3<head> 4 <meta charset="utf-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"> 6 <meta http-equiv="Content-Security-Policy" content="default-src * data: gap: content: https://ssl.gstatic.com; style-src * 'unsafe-inline'; script-src * 'unsafe-inline' 'unsafe-eval'"> 7 <script src="components/loader.js"></script> 8 <link rel="stylesheet" href="components/loader.css"> 9 <link rel="stylesheet" href="css/style.css"> 10 <script src="https://apis.google.com/js/api.js"></script> 11 <script> 12 var calendar_api_key = 'xxxxxxxxxxxxxxxxx'; 13 var calendar_id = 'xxxxxxxxxxxxxxx@group.calendar.google.com'; 14 var event_url = 'https://www.googleapis.com/calendar/v3/calendars/' + encodeURIComponent(calendar_id) + '/events'; 15 16 function start() { 17 console.log(event_url); 18 gapi.client.init({ 19 'apiKey': calendar_api_key, 20 }).then(function() { 21 return gapi.client.request({ 22 'path': event_url 23 }) 24 }).then(function(response) { 25 let resultArea = document.getElementById('resultArea'); 26 let items = response.result.items; 27 for(let i = 0; i < items.length; i++){ 28 console.log(items[i].summary + ' ' + items[i].start.dateTime); 29 } 30 }, function(reason) { 31 console.log('reason: ' + reason.result.error.errors[0].reason); 32 console.log('ErrorCode: ' + reason.result.error.code); 33 console.log('Error: ' + reason.result.error.message); 34 }); 35 }; 36 gapi.load('client', start); 37 38 </script> 39</head> 40<body> 41 <div id='resultArea'></div> 42 43</body> 44</html> 45
出力結果
reason: notFound
ErrorCode: 404
Error: Not Found
環境
Monaca
使用言語:JavaScript
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。