2017-05-23 14 views
1

私はGoogle APIにはまったく新しいものがあり、一般には比較的新しいコードです。私はチェックボックスのリストから複数の日を選択して当時のGoogleカレンダーの予定を作成できるウェブサイトを作ろうとしています。GoogleカレンダーAPI Javascript - イベントフォーマットを追加する

私は、表示とチェックボックスのロジックにASP.net Webページを使用しており、チェックボックスの結果をJSONとしてJavascriptに送信しています。その後、JavascriptでJSONとGoogleカレンダーのものを処理します。

ボイラープレートのコードをいくつかの例でコピーするだけで、Googleから認証され、イベントの詳細がハードコードされたカレンダーにイベントを追加できます。この問題は、ハードコードされた詳細ではなく変数でイベントの詳細を設定しようとすると始まります。

私はこれがうまくいくと信じています。小さなフォーマットの問題があり、動作しないと思います。

これは私が作成した詳細「T1」と「資源」の内容を置き換えるしようとすると、これは動作しません

function makeApiCall3() { 
      for (var i = 0; i < arrayOfEvents.length; i++) 
      { 

       var t1 = "{\"summary\":\"" + arrayOfEvents[i].summary + "\", \"start\":" + JSON.stringify(arrayOfEvents[i].start) + ", \"end\":" + JSON.stringify(arrayOfEvents[i].end) + "}"; 
       gapi.client.load('calendar', 'v3', function() { 
        var resource = { 
         "summary": "Appointment", 
         "location": "Somewhere", 
         "start": { 
          "dateTime": "2017-05-29T10:00:00.000-07:00" 
         }, 
         "end": { 
          "dateTime": "2017-05-29T10:00:00.000-07:00" 
         } 

        }; 
        var request = gapi.client.calendar.events.insert({ 
         'calendarId': 'primary', 
         'resource': resource 
        }); 
        request.execute(function (resp) { 
         console.log(resp); 
        }); 
        alert(t1); 
       }); 

      } 

      alert("End of Calendar Call"); 
     } 

「VARリソース」でハードコードさ詳細で動作します。

function makeApiCall3() { 
      for (var i = 0; i < arrayOfEvents.length; i++) 
      { 

       var t1 = "\"summary\":\"" + arrayOfEvents[i].summary + "\", \"start\":" + JSON.stringify(arrayOfEvents[i].start) + ", \"end\":" + JSON.stringify(arrayOfEvents[i].end); 
       gapi.client.load('calendar', 'v3', function() { 
        var resource = { t1 
       //  "summary": "Appointment", 
       //  "location": "Somewhere", 
       //  "start": { 
       //   "dateTime": "2017-05-29T10:00:00.000-07:00" 
        //  }, 
        //  "end": { 
        //   "dateTime": "2017-05-29T10:00:00.000-07:00" 
        //  } 

        }; 
        var request = gapi.client.calendar.events.insert({ 
         'calendarId': 'primary', 
         'resource': resource 
        }); 
        request.execute(function (resp) { 
         console.log(resp); 
        }); 
        alert(t1); 
       }); 

      } 

      alert("End of Calendar Call"); 
     } 

"var request" "resource"部分を "t1"に置き換えただけでは機能しません。デバッグのために

function makeApiCall3() { 
      for (var i = 0; i < arrayOfEvents.length; i++) 
      { 

       var t1 = "{\"summary\":\"" + arrayOfEvents[i].summary + "\", \"start\":" + JSON.stringify(arrayOfEvents[i].start) + ", \"end\":" + JSON.stringify(arrayOfEvents[i].end) + "}"; 
       gapi.client.load('calendar', 'v3', function() { 
        var resource = { 
         "summary": "Appointment", 
         "location": "Somewhere", 
         "start": { 
          "dateTime": "2017-05-29T10:00:00.000-07:00" 
         }, 
         "end": { 
          "dateTime": "2017-05-29T10:00:00.000-07:00" 
         } 

        }; 
        var request = gapi.client.calendar.events.insert({ 
         'calendarId': 'primary', 
         'resource': t1 
        }); 
        request.execute(function (resp) { 
         console.log(resp); 
        }); 
        alert(t1); 
       }); 

      } 

      alert("End of Calendar Call"); 
     } 

私は警告を作ってきたと私は定型的なコードがあったように、正確にデータをフォーマットしてきた、まだそれが動作していないかのように、T1のアラート結果が見えます。 (写真はこちら) alert(t1) result

ここで説明したバッチ方法を試しましたが、その作業を行うことはできませんでした。 Google Calendar javascript api - Add multiple events

ありがとうございました。

+0

どのようなエラーが表示されますか?あなたのユースケースはまだ試していませんが、[JSON.stringify()](https://www.w3schools.com/js/js_json_stringify.asp)を使って試しましたか? – noogui

+0

エラーは表示されません。カレンダーに何も追加されません。 私はt1変数にJSON.stringify()を持っています。他にどこに提案していますか? –

答えて

0

私はこの問題を解決しました。この問題以前は、デベロッパーコンソールを使用してブラウザ内で「デバッグ」することができないことに気づきませんでした。開発者コンソールを発見した後、私はいくつかの小さな問題を踏んで解決しました。

Googleカレンダーの主な問題は、dateTime文字列にタイムゾーンオフセットが含まれていた日付形式が気に入らないようだったことです。それを分けてタイムゾーン領域として別々に挿入することで、私は成功しました。

関連する問題