開発ツール
ジャハ・ジェレショフ
バックエンド開発者
2022年12月29日
ノーコードのシンプルさとフルコードのパワーを融合したローコード・プラットフォーム 🚀。
無料で始める
2022年12月29日
-
10
min read

GoogleカレンダーでLatenode

ジャハ・ジェレショフ
バックエンド開発者
目次

注:プロジェクトのLatenode チェーンに新しいノードを追加した後、前のノードのデータにアクセスするには、プロジェクトを実行し、必要なすべてのデータを含むチェーンを呼び出す必要があります。JavaScript "ノードから "HTTPリクエスト "ノードに代入されるデータは、しばしば二重引用符でエスケープする必要があります。リモートサーバーからのリクエストに応答して受信した複雑なオブジェクトや配列は、文字列として送られてくるため、"JavaScript "ノードで対応するデータ型と同じように扱うには、JSON.parseで処理する必要があります。

まず、記事の指示に従ってトークンを取得してください。サーバーのリストで「Google Calendar Api v...」を選択し、スコープで「www.googleapis.com/auth/calendar」を選択してください;

次に、カレンダーに新しいカレンダーを作成する;

一休のクライアントにリクエストを用意してみよう;

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=Event created fromLatenode'
--data 'location=https://app.latenode.com'
--data 'description=API を使用してLatenode からカレンダーにイベントを追加'
--data 'startDate=2022-12-21T09:00:00-07:00 最も近い日付に変更'
--data 'startTZ=Europe/Moscow'
--data 'endDate=2022-12-22T09:00:00-07:00 最も近い日付に変更'
-データ 'endTZ=ヨーロッパ/モスクワ'

冒頭のステップで得たトークンを代入してみよう;

開始日 "startDate "と終了日 "endDate "を最も近い日付に変更する。タイムゾーンがstartTZとendTZに合わない場合は、タイムゾーンも変更できる;

Webhook」ノードを作成します:「ノードの追加" => "Http" => "Webhook";

Webhookのアドレスをコピーし、残りのクライアントのアドレスバーに貼り付けます;

次に、別のノード "JavaScrtipt "を追加しよう:「ノードの追加" => "コード" => "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 request";

変更を保存する;

ノードを結びつける;

ノード間でデータを転送するために、チェーンを開始し、呼び出そう;

冒頭の "Url "フィールドには、"JavaScrtipt "の変数"apiURL"を代入し、その後に次のように指定する:/users/me/カレンダーリスト;

デフォルトのメソッドが "Get "であることを確認してください;

タイトルに "Autorization"、その値に "JavaScrtipt "の変数"bToken"を追加しよう;

保存」をクリックする;

別のノード "JavaScrtipt "を作りましょう:"+ Add Node" => "Code" => "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 request";

変更を保存する;

ノードを結びつける;

ノード間でデータを転送するために、チェーンを開始し、呼び出そう;

冒頭の "Url "フィールドに、最初の "JavaScrtipt "ノードから"apiURL"変数を代入し、その後に追加する:/次に、"JavaScrtipt "の変数"targetCalendar.id"をカレンダーリスト処理で置き換え、最後に次のように加える:/を追加する;

メソッドを "Post "メソッドに変更する;

raw "本体の中で:オブジェクトを含む変数を、最初の "JavaScrtipt "ノードの最初の新しいイベントに置き換えてみよう;

Autorization "ヘッダーを追加し、その値に最初の "JavaScrtipt "ノードから変数"bToken"を追加しよう;

保存」をクリックする;

ノードを結びつける;

ノード間でデータを転送するために、チェーンを開始し、呼び出そう;

その後、新しいイベントがカレンダーに表示されるはずです;

Latenode 、チェーン全体の最後には次のようになる:

今後の記事でお会いしましょう;

役立つリンク


ベーシック:

Latenode
Google OAuth 2.0 プレイグラウンド

情報

Google Calendar API
Google Calendar API CalendarList: リスト
Google Calendar API イベント: 挿入

関連ブログ

使用例

後援