2017-05-23 6 views
1

나는 Google API에 대해 처음 접했고 일반적으로 비교적 새로운 코드입니다. 나는 체크 박스 목록에서 여러 날을 선택하고 그 날에 Google 캘린더 이벤트를 만들 수있는 웹 사이트를 만들려고합니다.Google 캘린더 API 자바 스크립트 - 이벤트 형식 추가

표시 및 체크 박스 논리에 대해 ASP.net 웹 페이지를 사용하고 JSON으로 확인란 결과를 Javascript로 보내고 있습니다. JSON과 자바 캘린더를 Javascript로 처리합니다.

몇 가지 예에서 정형기 코드를 복사하기 만하면 Google을 통해 인증을 받고 하드 코딩 된 이벤트 세부 정보가 포함 된 일정을 내 캘린더에 추가 할 수 있습니다. 문제는 하드 코딩 된 세부 사항이 아닌 변수로 이벤트 세부 정보를 채우려고 할 때 시작됩니다.

나는이 작업을 거의 끝내고 실제로 작동하지 못하게하는 작은 서식 문제가 있다고 생각합니다.

이 "VAR 자원"내가 만들어보기 '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"); 
     } 

이 작동하지 않습니다에 하드 세부 작동합니다.

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 요청" "리소스"부분을 "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 문자열에 시간대 오프셋이 포함 된 날짜 형식이 마음에 들지 않는 것입니다. 이를 분리하고 대신 시간대 영역으로 별도로 삽입함으로써 성공을 거두었습니다.