커뮤니티
포인트
쿠폰
내 강의실
국비 신청 내역
증명서
계정
로그아웃
학습 질문
개발 일지
나의 활동
답변 완료
인터뷰 날짜를 알 수 없다고 뜨네요,,,
[왕초보] 칼퇴를 부르는 파이썬 업무 자동화 v0
5주차
북마크
장*혜
댓글
1
추천
0
조회수
8
조회수
8
답변 완료

* 겪고 있는 문제 상황을 최대한 자세하게 작성해주세요.

* 문제 해결을 위해 어떤 시도를 해보았는지 구체적으로 함께 알려주세요.


뭐가 문제일까요,,, 한 동영상 볼때마다 오류가뜨네요ㅜㅜ 많이 답답합니다



스파르타 즉문즉답스파르타 즉문즉답




// 구글 폼을 제출하면 추적하여 이메일 알림 발송하는 함수

function onFormSubmit(e) {


    // 구글 폼의 응답을 찾아내서 변수로 지정

    let formResponse = e.values;


    console.log(formResponse);


    let timeStamp = formResponse[0];

    let email = formResponse[1];

    let name = formResponse[2];



    let birth = formResponse[3];

    let phone = formResponse[4];

    let job = formResponse[5];

    let requestDate = formResponse[6];

    let requestTime = formResponse[7];


    // 메일 발송에 필요한 정보 찾기

    let myMail = ',fg89137711@gmail.com';

    let mailTitle = '[면접 일정 확인 요청] 지원자가 구글 폼을 작성했어요!';


    // HTML 메일 형태로 데이터 담기  

    let mailBody = `<div>

                        <h3>${mailTitle}</h3>

                        <p>작성시간 : ${timeStamp}</p>

                        <p>성함 : ${name}</p>

                        <p>생년월일 : ${birth}</p>

                        <p>희망직무 : ${job}</p>

                        <p>이메일 : ${email}</p>

                        <p>전화번호 : ${phone}</p>

                        <p>면접 희망일자 : ${requestDate}</p>

                        <p>면접 희망시각 : ${requestTime}</p>

                        <a href="내 구글 시트 URL">면접 신청 시트 확인하기</a>

                    </div>`;


    // 메일로 데이터 전송

    sendEmail(myMail, mailTitle, mailBody);

}


// 지메일을 보내는 함수

function sendEmail(recipient, subject, body) {


    MailApp.sendEmail({

        to: recipient,

        subject: subject,

        htmlBody: body

    });

}



// 구글 시트가 열리면 실행되는 함수

function onOpen() {

  let ui = SpreadsheetApp.getUi();

  ui.createMenu('자동화')

    .addItem('일정 예약하기', 'createCalendarSchedule')

    .addToUi();

}


// 구글 일정 예약하기 버튼을 누르면 실행되는 함수

function createCalendarSchedule() {

    let spreadsheet = SpreadsheetApp.getActiveSpreadsheet();

    let sheet = spreadsheet.getActiveSheet();


    let startRow = 2;

    let numRows = sheet.getLastRow() - 1;

    let dataRange = sheet.getRange(startRow, 1, numRows, 10);

    let data = dataRange.getValues();


    console.log(data);


    for (let i = 0; i < data.length; i++) {

        let row = data[i];

        console.log(row);


        let timeStamp = row[0];

        let email = row[1];

        let name = row[2];

        let birth = row[3];

        let phone = row[4];

        let job = row[5];

        let requestDate = row[6];

        let requestTime = row[7];

        let interviewDate = row[8];

        let isReserved = row[9];


        if (interviewDate === '') {

            console.log('일정 예약 실패 : 면접 일정 데이터가 비어있습니다');

            continue;

        }

        if (isReserved === '완료') {

            console.log('일정 예약 실패 : 이미 예약이 완료된 일정입니다');

            continue;

        }


        interviewDate = new Date(interviewDate);

        // 날짜와 시간을 문자열로 변환하여 원하는 형식으로 출력

        let formattedDate = Utilities.formatDate(interviewDate, Session.getScriptTimeZone(), 'yyyy/MM/dd HH:mm');


        // HTML 메일 형태로 데이터 담기

        let office = '서울특별시 르탄대로 11길 8';

        let mailTitle = '안녕하세요. [대박기획]입니다. 제출해주신 면접 일정이 확정되어 공유드립니다.';

        let admin = '김대박';


        let mailBody = `<div>

                        <h3>${mailTitle}</h3>

                        <p>성함 : ${name}</p>

                        <p>희망직무 : ${job}</p>

                        <p>면접일자 : ${formattedDate}</p>

                        <p>면접장소 : ${office}</p>

                        <p>인사 담당자 ${admin} 드림</p>

                      </div>`


        // 메일로 고객에게 데이터 전송

        sendEmail(email, '[대박기획] 확정된 면접 일정 공유드립니다.', mailBody);

    }

}


// startDate에 30분을 추가하여 endDate 생성

let endDate = new Date(interviewDate.getTime() + 30 * 60 * 1000);

let scheduleName = `${job}-${name} 님 면접`;

let mySchedules = CalendarApp.getDefaultCalendar().getEvents(interviewDate, endDate, { search: scheduleName });


// 중복된 스케쥴이 없으면 구글 캘린더 일정으로 추가

if (mySchedules.length === 0) {

  CalendarApp.getDefaultCalendar().createEvent(scheduleName, interviewDate, endDate);

}





오후 3:16:51알림실행이 시작됨오후 3:16:52오류ReferenceError: interviewDate is not defined

(익명)@ Code.gs:121



취소
 공유
취소
댓글 0
댓글 알림
나의얼굴