0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【簡単30分】 teamsへの定期配信設定

Last updated at Posted at 2025-08-22


はじめに

皆さんこんにちは!
今回の記事では,簡単にできるSPIRAL®ver2を用いたteamsへの定期配信設定方法について紹介します。

今回はSPIRAL®ver2を使用します。
SPIRAL®ver2を使用する際の参考にしていただければ幸いです。
SPIRALについて▷https://qiita.com/SPIRAL_internship/items/2b78efb2c25a027c84d6
SPIRAL SPIRAL®ver2について▷ https://spiral.pi-pe.co.jp/

構成図

image.png

今回設定する方法では事前にDBに配信するメッセージ登録をおこない,登録したメッセージをteamsへ定期配信することができる流れとなっています。

以下の3つのステップから設定を行うことができます。
① teamsにて,定期配信をおこなうチャネルwebhookの登録
②定期配信したいメッセージを登録するDBとフィールドの設定
③API・スケジュールトリガの設定とPHPを用いたアクションの設定

PHPは,数か所だけ書き換えるだけで使用できるようにしているのでよくわからなくても簡単に設定できるようにしているので安心してください!

設定

①teamsの設定

初めに今回メッセージを送信するチャネルに対して、webhookの設定を行いURLの取得をおこないます。
メッセージを配信する対象のチャネルの右上の「①その他チャット オプション」のワークフローをクリックします。

「webhook要求を受信するとチャネルに投稿する」で検索し、表示されたテンプレートをクリックして下さい。
接続先の登録と、投稿するチャネルの詳細選択をおこなうとワークフローが作成され、URLが表示されます。

image.png

表示されたURLを使用するため、必ずコピーしメモしておいてください。

image.png

②DB・フォーム作成

DBを作成し、必要なフィールドを追加してください。
今回私は2つのフィールドを作成しています。

image.png

また、フォームも作成し情報を登録しておきます。

image.png

また、DBが入っているアプリのアプリIDとDBのDBIDをメモしておいてください。
それぞれの設定から確認できます。

③API設定

APIエージェントの設定をおこない、APIキーの取得とAPIを有効に設定してください。
取得したAPIキーは使用するのでメモしておいてください。

image.png

③トリガとアクション設定

定期配信したい時刻をスケジュールトリガから設定してください。

image.png

設定したスケジュールトリガにPHP実行でのアクション設定を行います。

image.png

③PHP実行設定

PHPに以下のコードをコピーして貼り付け、一部箇所を自身の環境の設定値に書き換えれば完了です!!

<?php
// スパイラル設定値
define("API_URL", "https://api.spiral-platform.com/v1");
define("API_KEY", " ご自身のAPIキーを入力してください ");
define("APP_ID", " 使用するアプリのIDを入力してください ");
define("DB_ID", " 使用するDBのIDを入力してください ");

// teamsに表示させたいフィールド(必要な分増やし、ご自身のフィールド識別名を入力してください)
define("MESSAGE_FIELD", "message");
define("MESSAGE_TITLE", "title");

// Teams Webhook URL
define("TEAMS_WEBHOOK_URL", " 取得したwebhookのURLを入力してください ");

//表示したいレコードがはいったレコードIDの入力
$ID = "1";

// 🔹 スパイラルAPI
$spiralApiUrl = API_URL."/apps/".APP_ID."/dbs/".DB_ID. "/records/".$ID;
$recoed = SPIRAL_API_send($spiralApiUrl);

// APIからレコード取得
if (!empty($recoed["item"][MESSAGE_FIELD])) {
    $messageText =  $recoed["item"][MESSAGE_FIELD];
    $messageTITLE =  $recoed["item"][MESSAGE_TITLE];
} else {
    $messageText = "指定されたレコードにメッセージが見つかりませんでした。";
}

// Teamsへ通知
$teamsData = [
    "type" => "message",
    "attachments" => [
        [
            "contentType" => "application/vnd.microsoft.card.adaptive",
            "content" => [
                "type" => "AdaptiveCard",
                "version" => "1.4",
                "body" => [
                     [
                        "type" => "TextBlock",
                        "text" => $messageTITLE,
                        "wrap" => true
                    ],
                    [
                        "type" => "TextBlock",
                        "text" => $messageText,
                        "wrap" => true
                    ]
                ]
            ]
        ]
    ]
];

TEAMS_WEBHOOK_send($teamsData); 

function SPIRAL_API_send($spiralApiUrl) {
    $header = [
        "Authorization:Bearer " . API_KEY,
        "Content-Type:application/json",
        "X-Spiral-Api-Version: 1.1",
    ];

    $curl = curl_init();
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_URL, $spiralApiUrl);
    curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
    $response = curl_exec($curl);
    if (curl_errno($curl)) echo curl_error($curl);
    curl_close($curl);

    return json_decode($response, true);
}

function TEAMS_WEBHOOK_send($data) {
     $header = array(
    "Content-Type:application/json",
    );
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_URL, TEAMS_WEBHOOK_URL);
    curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
    curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($data, JSON_UNESCAPED_UNICODE));
    curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");

    $response = curl_exec($curl);
    if (curl_errno($curl)) echo curl_error($curl);
    curl_close($curl);
    return json_decode($response, true);
}


▽SPIRALのトライアルはこちらから!


実行

手動実行をクリックすると。。。

image.png

しっかり登録した内容が、teamsに送信されました!!
定期配信設定を有効にすることで、スケジュールトリガ設定で指定した時間にteamsへ配信されます!

まとめ

今回はSPIRAL®ver2とteamを連携した定期配信設定を行いました!
トリガとアクション設定を増やし、配信するレコードIDを変更することで、登録したメッセージを複数配信することもできます。
簡単に設定できるので、ぜひ試してみてください!


私がインターンしているスパイラル株式会社は、ローコードプラットフォーム、SPIRAL ver.1のトライアルアカウント無償提供しています。このアカウントの記事でも紹介するように、たくさんの機能がございます。

▶︎ フォーム
▶︎ 認証エリア
▶︎ ログイン
▶︎ メール送信
▶︎ カスタムプログラム
などの作成ができますので、ぜひ試してみてください!!

そして、今チームでトライアル登録者向けに、オンボーディングコンテンツを作成しています。SPIRAL ver.1にご興味のある方、ぜひこちらもご覧ください👇

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?