LoginSignup
17
17

More than 5 years have passed since last update.

Slackで返してくれるbotをphpで作ってみた

Posted at

はじめまして!

Slack面白いですね。今日はSlackでなんか言うと返してくれるbotを作ったログを書き残しておきます。

かなりレベル低い私ですが、プログラミングの手習いとして取り組んでみた結果を書いてみたいと思います。
ここのユーザーの方々には申し訳ないレベルです。

SlackのIntegrationを設定する。

Outgoing Webhooksの設定(結局使わなかった)

まずはslackのOutgoing WebHooksを使っていきました。

Channelは Any
Trigger Word(s)は rassun
URL(s)に 自分のサーバーに置いてあるphpを指定します。
その他は適当にしました。
Customize Nameはrassunとか。
あとは
Customize Iconを:sunglasses:にしました。
1f60e.png
↑こんなやつ

結論、キレイなコードかけなかったのでSlash Commandsにすることにしました。

SlashCommandsの設定

Command は /rassun
URL は 自分のサーバーに置いてあるphpファイルを指定します。
Method, Token は 最初のママです。
Show this command in the autocomplete list にはチェックを入れました。

php書いてみた

ここからが問題ですね。
こんなコード書いてみました。

<?php


// 受信文字列取得
$text = $_POST["text"];


// IncomingWebHookへ送信
$payload = array(
        "channel" => "#{$_POST["channel_name"]}",
        "attachments" => array(
                array(
                        "fallback" => "ラッスンゴレライ!お願いします!",
                        "pretext" => "ラッスンゴレライ! ".$text." ってなんですのーん?!",
                        "color" => "#E4969D",
                        "fields" => array(
                                array(
                                        "short" => "false"
                                )
                        )
                )
        )
);




// IncomingWebHookへ送信
    $curl = curl_init("IncomingWebHookURL");
    curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
    curl_setopt($curl, CURLOPT_HTTPHEADER, 'Content-type: application/json');
    curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($payload));
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    $result = curl_exec($curl);
    curl_close($curl);


?>

これでサングラスさんがラッスンゴレライを返してくれるようになりました!

おわりに

ほとんど初めて、動くプログラムを書いたので、楽しかったです。
次はGoogleシートとslackの連携に挑戦中です!

17
17
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
17
17