お知らせ:

当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の英語版を参照してください。

Event Functionの設定

ここでは、Zoho Cliqチャンネルに自動的にメッセージを送信するEvent Function Cliq_Notifierを設定します。このメッセージには、支払いが正常に完了した新規顧客の請求書詳細が含まれます。このFunctionは、Catalyst Signalsによってトリガーされた際に実行されます。

Functionsディレクトリfunctions/Cliq_Notifierには以下が含まれています:

  • main.pyメインFunctionファイル
  • catalyst-config.json設定ファイル
  • 外部ライブラリを追加するためのrequirements.txtファイル

main.pyファイルにコードを追加します。

このFunctionには、効率的に動作するためにrequestsライブラリとCatalyst SDKが依存関係として必要です。インストールするには、Functionのディレクトリ(functions/Cliq_Notifier)に移動してlibフォルダを作成します。libフォルダから以下のコマンドを実行してください:

copy
$
pip3 install requests zcatalyst-sdk -t .

依存関係がインストールされます。

installing requests dependencies

Note: このセクションのコードを確認し、内容を十分に理解してください。

Pythonコードをコピーし、プロジェクトのfunctions/Cliq_Notifierディレクトリにあるmain.pyに貼り付けて、ファイルを保存してください。任意のIDEを使用してアプリケーションのファイルを操作できます。

main.py
copy

import sys
sys.path.insert(0, 'lib')
import logging
import traceback
import requests
import zcatalyst_sdk
logger = logging.getLogger()
zbooksdomain = "{{YOUR_ZBOOKS_DOMAIN}}"; #リージョンに基づいたZoho Booksドメインを入力してください
zbooksorg = "{{YOUR_ZBOOKS_ORGANIZATION_ID}}" #Zoho BooksのOrganization IDを入力してください
zcliqdomain = "{{YOUR_ZCLIQ_DOMAIN}}"; #リージョンに基づいたZoho Cliqドメインを入力してください
zcliq_channel_unique_name = "{{YOUR_CHANNEL_UNIQUE_NAME}}" #更新を投稿するチャンネルのユニーク名を入力してください
zcliq_bot_unique_name = "{{YOUR_BOT_UNIQUE_NAME}}" #メッセージを投稿するボットのユニーク名を入力してください
zaccountsdomain = "{{YOUR_ZACCOUNTS_DOMAIN}}" #リージョンに基づいたZoho Accountsドメインを入力してください
def handler(event, context):
    try:
        data = extract_invoice_data(event)
        rows = transform_invoice_data(data)
        request_body = prepare_cliq_request(rows)
        access_token = get_access_token()
        send_to_cliq(request_body, access_token)
        logger.info("Message pushed to channel successfully")
        context.close_with_success()
    except Exception as e:
        logger.error("An unexpected error occurred:\n%s", traceback.format_exc())
        context.close_with_failure()
def extract_invoice_data(event):
    event_payload = event.get_raw_data()
    data = event_payload.get("data")
    rows = [invoice for invoices in data for invoice in invoices]
    return rows
def transform_invoice_data(rows):
    for row in rows:
        invoice_id = row.get("Invoice Id")
        row["Link"] = f"https://{zbooksdomain}/app/{zbooksorg}#/invoices/{invoice_id}"
        del row["Invoice Id"]
    return rows
def prepare_cliq_request(rows):
    request_body = {
        "slides": [{
            "type": "table",
            "data": {
                "headers": ["Customer", "Invoice Number", "Amount", "Paid On", "Link"],
                "rows": rows
            }
        }],
        "text": "Here are the invoices marked as Paid in the last hour:"
    }
    return request_body
def get_access_token():
    app = zcatalyst_sdk.initialize()
    connector_config = {
        "CliqConnector": {
            "client_id": "{{YOUR_CLIENT_ID}}", #Client IDを入力してください
            "client_secret": "{{YOUR_CLIENT_SECRET}}", #Client Secretを入力してください
            "auth_url": f"https://{zaccountsdomain}/oauth/v2/token",
            "refresh_url": f"https://{zaccountsdomain}/oauth/v2/token",
            "refresh_token": "{{YOUR_REFRESH_TOKEN}}" #Refresh Tokenを入力してください
        }
    }
    connector = app.connection(connector_config).get_connector("CliqConnector")
    access_token = connector.get_access_token()
    return access_token
def send_to_cliq(payload, access_token):
    cliq_channel_url = f"https://{zcliqdomain}/api/v2/channelsbyname/{zcliq_channel_unique_name}/message?bot_unique_name={zcliq_bot_unique_name}" 
    headers = {
        "Content-Type": "application/json",
        "Authorization": f"Zoho-oauthtoken {access_token}"
    }
    response = requests.post(cliq_channel_url, headers=headers, json=payload)
    response.raise_for_status()
View more
Note:

コードをFunctionファイルにコピー&ペーストした後、インラインコメントに示されている通り、以下のプレースホルダーを実際の値に更新してください:

  • Zoho Booksドメイン(11行目):リージョンに基づいたZoho Books Organizationのドメインを入力してください。例:books.zoho.com、books.zoho.eu、books.zoho.in

  • Zoho Books Organization ID(12行目):Zoho Booksアカウントの一意のOrganization IDを入力してください。

  • Zoho Cliqドメイン(14行目):リージョンに基づいたZoho Cliq Organizationのドメインを指定してください。例:cliq.zoho.com、cliq.zoho.eu

  • Zoho Cliqチャンネルのユニーク名(15行目):支払い済み請求書の更新を投稿するZoho Cliqチャンネルのユニーク名を入力してください。

  • Zoho Cliqボットのユニーク名(16行目):上記チャンネルに追加されたZoho Cliqボットのユニーク名を入力してください。

  • Zoho Accountsドメイン(18行目):Catalyst、Zoho Books、Zoho Cliqへのログインに使用するZoho Accountsドメインを指定してください。例:accounts.zoho.com、accounts.zoho.in

  • Client ID(70行目)ステップ4のクライアント登録時に取得したClient IDを貼り付けてください。

  • Client Secret(71行目)ステップ4で生成された対応するClient Secretを貼り付けてください。

  • Refresh Token(74行目)ステップ5でAPIクライアントツールを使用して生成したRefresh Tokenを入力してください。

Event Functionの設定が完了しました。

最終更新日 2026-03-05 11:43:24 +0530 IST