お知らせ:

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

Event Functionの設定

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

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

  • index.jsメインFunctionファイル
  • catalyst-config.json設定ファイル
  • Nodeモジュール
  • package.jsonおよびpackage-lock.json依存関係ファイル

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

このFunctionには、効率的に動作するためにaxiosパッケージが依存関係として必要です。axiosはPromiseベースのHTTPクライアントで、Cliq APIエンドポイントにメッセージを投稿するための非同期HTTPリクエストの送信に使用します。

axiosをインストールするには、Node FunctionのディレクトリDev(functions/Cliq_Notifier)に移動し、以下のコマンドを実行します:

copy
$
npm install axios

モジュールがインストールされます。

installing axios dependencies

これにより、以下の画像のようにPackage.jsonファイルにaxios依存関係が更新されます。

Add dependencies for the fucntion

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

Note:このセクションのコードを確認し、内容を十分に理解してください。
index.js
copy
const axios = require('axios');
const catalyst = require('zcatalyst-sdk-node');
const ZBOOKSDOMAIN = "{{YOUR_ZBOOKS_DOMAIN}}"; //リージョンに基づいたZoho Booksドメインを入力してください
const ZBOOKSORG = "{{YOUR_ZBOOKS_ORGANIZATION_ID}}" //Zoho BooksのOrganization IDを入力してください
const ZCLIQDOMAIN = "{{YOUR_ZCLIQ_DOMAIN}}"; //リージョンに基づいたZoho Cliqドメインを入力してください
const ZCLIQ_CHANNEL_UNIQUE_NAME = "{{YOUR_CHANNEL_UNIQUE_NAME}}" //更新を投稿するチャンネルのユニーク名を入力してください
const ZCLIQ_BOT_UNIQUE_NAME = "{{YOUR_BOT_UNIQUE_NAME}}" //メッセージを投稿するボットのユニーク名を入力してください
const ZACCOUNTSDOMAIN = "{{YOUR_ZACCOUNTS_DOMAIN}}" //リージョンに基づいたZoho Accountsドメインを入力してください
module.exports = async (event, context) => {
    try {
        const rows = transformEventData(event.getRawData());
        const requestBody = buildCliqRequestBody(rows);
        const accessToken = await getAccessToken(context);
        await sendToCliq(requestBody, accessToken);
        console.log("Message pushed to channel successfully");
        context.closeWithSuccess();
    } catch (error) {
        console.error('Error occurred:', error);
        context.closeWithFailure();
    }
};
function transformEventData(rawData) {
    let rows = rawData.data.flat();
    for (let row of rows) {
        const invoiceId = row["Invoice Id"];
        delete row["Invoice Id"];
        row["Link"] = `https://${ZBOOKSDOMAIN}/app/${ZBOOKSORG}#/invoices/${invoiceId}`;
    }
    return rows;
}
function buildCliqRequestBody(rows) {
    return {
        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:"
    };
}
async function getAccessToken(context) {
    const app = catalyst.initialize(context);
    var connector = app.connection({
            CliqConnector: {
                client_id: "{{YOUR_CLIENT_ID}}", //Client IDを入力してください
                client_secret: "{{YOUR_CLIENT_SECRET}}", //Client Secretを入力してください
                auth_url: `https://${ZACCOUNTSDOMAIN}/oauth/v2/auth`,
                refresh_url: `https://${ZACCOUNTSDOMAIN}/oauth/v2/token`,
                refresh_token: "{{YOUR_REFRESH_TOKEN}}" //Refresh Tokenを入力してください
            }
        })
        .getConnector('CliqConnector'); 
    return await connector.getAccessToken();
}
async function sendToCliq(body, accessToken) {
    const cliqChannelURL = `https://${ZCLIQDOMAIN}/api/v2/channelsbyname/${ZCLIQ_CHANNEL_UNIQUE_NAME}/message?bot_unique_name=${ZCLIQ_BOT_UNIQUE_NAME}`;
    const headers = {
        'Content-Type': 'application/json',
        'Authorization': 'Zoho-oauthtoken ' + accessToken
    };
    const response = await axios.post(cliqChannelURL, body, { headers });
}

View more

Note:

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

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

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

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

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

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

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

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

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

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

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

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