串接 Slack API 沒什麼困難,最難的是要找到 API token 去哪拿... XD
Slack API 透過 webhook 將訊息傳入
Slack webhook 的 API 得要從 https://api.slack.com/apps 去取得(App、Web 頁面拿不到)
這邊直接紀錄 Webhook 新的申請取得路徑:
- https://my.slack.com/services/new/incoming-webhook/
- 登入後,直接進入此頁面就可以去申請 Webhook API URL
- Webhook API URL 會長這樣:
- https://hooks.slack.com/services/$XXX/$CHANNEL/$TOKEN
- 測試:
- curl -X POST --data-urlencode "payload={\"channel\": \"#my-channel-here\", \"username\": \"webhookbot\", \"text\": \"This is posted to #my-channel-here and comes from a bot named webhookbot.\", \"icon_emoji\": \":ghost:\"}" https://hooks.slack.com/services/$XXX/$CHANNEL/$TOKEN
PHP Slack API 串接 Function
- <?php
- function send_slack_message($text)
- {
- $slack_webhook_url = 'https://hooks.slack.com/services/$XXX/$CHANNEL/$TOKEN';
- $json_data = ['text' => $text]; // $json_data = ["text" => "Hello Slack Webhook"];
- $ch = curl_init();
- curl_setopt($ch, CURLOPT_URL, $slack_webhook_url);
- curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type:application/json']);
- curl_setopt($ch, CURLOPT_POST, true);
- curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($json_data));
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
- curl_exec($ch);
- curl_close($ch);
- return true;
- }
- // send_slack_message('Slack API 傳送測試');
- ?>