개발 도구
자하 예레쇼프
백엔드 개발자
2022년 12월 29일
노코드 단순성과 풀코드 파워를 결합한 로우코드 플랫폼 🚀
무료로 시작하기
2022년 12월 29일
-
10
최소 읽기

다음을 사용하여 Google 캘린더에서 새 이벤트 만들기 Latenode

자하 예레쇼프
백엔드 개발자
목차

참고: 프로젝트의 Latenode 체인에 새 노드를 추가한 후 이전 노드의 데이터에 액세스하려면 프로젝트를 실행하고 필요한 모든 데이터로 체인을 호출해야 합니다. "JavaScript" 노드에서 "HTTP 요청" 노드로 치환된 데이터는 큰따옴표로 이스케이프 처리해야 하는 경우가 많습니다. 원격 서버의 요청에 대한 응답으로 수신되어 문자열로 오는 복잡한 객체나 배열은 해당 데이터 유형과 마찬가지로 "JavaScript" 노드에서 작업하기 위해 JSON.parse에서 처리해야 합니다.

먼저 기사의 지침에 따라 토큰을 가져와야하며 서버 목록에서만 "Google 캘린더 API v..."를 선택하고 범위에서 "www.googleapis.com/auth/calendar "를 선택하십시오;

다음으로 캘린더에서 새 캘린더를 만들고, 예를 들어 "LatenodeTest"라고 부를 수 있습니다;

휴식 고객을 위한 요청을 준비해 보겠습니다;

REQ01: 휴식 클라이언트 요청


curl --request POST --url 'https://webhook.latenode.com/00/dev/some_hash'
--header 'Accept: application/json'
--header 'Content-Type: application/x-www-form-urlencoded'
--data 'token=[대괄호를 토큰의 콘텐츠로 바꾸기]'
--data 'summary= Latenode 에서 생성된 이벤트'
--data 'location=https://app.latenode.com'
--data 'description=API를 사용하여 Latenode 에서 캘린더에 이벤트 추가'
--data 'startDate=2022-12-21T09:00:00-07:00 가장 가까운 날짜로 변경'
--data 'startTZ=유럽/모스크바'
--data 'endDate=2022-12-22T09:00:00-07:00 가장 가까운 날짜로 변경'
--data 'endTZ=유럽/모스크바'

앞의 단계에서 얻은 토큰으로 대체해 보겠습니다;

시작 날짜 'startDate'와 종료 날짜 'endDate'를 가장 가까운 날짜로 변경하고, startTZ와 endTZ가 맞지 않는 경우 표준 시간대를 변경할 수도 있습니다;

"웹훅" 노드를 만듭니다: "+ 노드 추가" => "Http" => "웹훅";

웹훅 주소를 복사하여 나머지 클라이언트 주소창에 붙여넣습니다;

다음으로 다른 노드 "JavaScrtipt"를 추가해 보겠습니다: "+ 노드 추가" => "코드" => "자바스크립트";

변경 사항을 저장합니다;

노드를 함께 묶습니다;

체인을 시작하고 호출하여 노드 간에 데이터를 전송해 보겠습니다;

내용을 복사해 보겠습니다:


  const apiURL = "https://www.googleapis.com/calendar/v3";
  const bToken = "Bearer " + data["{{1.body.token}}"];
  const event = {
    'summary': data["{{1.body.summary}}"],
    'location': data["{{1.body.location}}"],
    'description': data["{{1.body.description}}"],
    'start': {
      'dateTime': data["{{1.body.startDate}}"],
      'timeZone': data["{{1.body.startTZ}}"]
    },
    'end': {
      'dateTime': data["{{1.body.endDate}}"],
      'timeZone': data["{{1.body.endTZ}}"]
    },
    'reminders': {
      'useDefault': false,
      'overrides': [
        {'method': 'email', 'minutes': 24 * 60},
        {'method': 'popup', 'minutes': 10}
      ]
    }
  };
  return {
      apiURL, bToken, event
  }

Let's check in all constructions like "data["{{1.body.name}}"]" that the number of Webhook corresponds to the one we are getting data from, if not replace it with the necessary one (let me remind you that 1 is the node number written just below the node name above the node type, then if it is a query then the object field responsible for the type of sent/received data is selected - body for forms or query for query parameters);

저장;

"HTTP 요청" 노드를 만들어 보겠습니다: "+ 노드 추가" => "Http" => "HTTP 요청";

변경 사항을 저장합니다;

노드를 서로 연결합니다;

체인을 시작하고 호출하여 노드 간에 데이터를 전송해 보겠습니다;

처음의 "Url" 필드에서 "JavaScrtipt"에서"apiURL" 변수를 대체하고 그 뒤에 다음을 지정합니다: /users/me/calendarList 를 지정합니다;

기본 메서드가 "가져오기"인지 확인합니다;

"Autorization"이라는 제목을 추가하고 그 값에 "JavaScrtipt"의"bToken" 변수를 추가해 보겠습니다;

"저장"을 클릭합니다;

다른 노드 "JavaScrtipt"를 생성해 보겠습니다: "+ 노드 추가" => "코드" => "자바스크립트";

변경 사항을 저장합니다;

노드를 서로 연결합니다;

체인을 시작하고 호출하여 노드 간에 데이터를 전송해 보겠습니다;

이전 쿼리에서 얻은 목록에서 원하는 캘린더를 찾기 위해 콘텐츠를 복사해 보겠습니다:


  const tempCalendarsList = JSON.parse(data["{{3.body.items}}"]); // Make sure the information is from the correct node from the calendar list query
  const targetCalendar = tempCalendarsList.find((calendar) => calendar.summary === "LatenodeTest"); // Here instead of "LatenodeTest" you can write the name of the desired calendar
  return {
    targetCalendar
  }

코드에 대한 주석에 지정된 데이터를 확인합니다;

저장

"HTTP 요청" 노드를 만들어 보겠습니다: "+ 노드 추가" => "Http" => "HTTP 요청";

변경 사항을 저장합니다;

노드를 서로 연결합니다;

체인을 시작하고 호출하여 노드 간에 데이터를 전송해 보겠습니다;

처음의 "Url" 필드에서 첫 번째 "JavaScrtipt" 노드에서"apiURL" 변수를 대체하고 그 뒤에 추가합니다: / 캘린더/를 추가한 다음, 캘린더 목록 처리와 함께 "JavaScrtipt"의"targetCalendar.id" 변수를 대체하고 마지막에 다음과 같이 추가합니다: / 이벤트를 추가합니다;

방법을 '게시' 방법으로 변경합니다;

"raw" 본문에서: 객체가 포함된 변수를 첫 번째 "JavaScrtipt" 노드의 첫 번째 이벤트에서 새 이벤트로 대체하겠습니다;

"Autorization" 헤더를 추가하고 그 값에 첫 번째 "JavaScrtipt" 노드의 변수"bToken"을 추가해 보겠습니다;

"저장"을 클릭합니다;

노드를 서로 연결합니다;

체인을 시작하고 호출하여 노드 간에 데이터를 전송해 보겠습니다;

그 후 캘린더에 새 이벤트가 나타납니다;

Latenode 의 전체 체인 끝에는 다음과 같이 표시됩니다:

다음 기사에서 뵙겠습니다;

유용한 링크:

↪CF_200D↩
기본:

Latenode
Google OAuth 2.0 플레이그라운드

정보:

Google 캘린더 API
Google 캘린더 API 캘린더 목록: 목록
Google 캘린더 API 이벤트: 삽입

관련 블로그

사용 사례

지원 대상