Slack API (Incoming Webhooks) が簡単すぎた

Slack はビジネスなどでも使われているチャットツールですが、ただチャットしているだけでは Skype や LINE でグループチャットしているのと同じようなものです。Slack が真価を発揮するのは、API を利用して簡単に外部と連携できることでしょう。ここでは Slack API の中でも Incoming Webhooks を利用して、外部から Slack へ投稿する例を説明します。

まず、以下の手順で Webhook URL を取得します。

  1. Slackにログインして、左側のメニューから [Menu]-[Integrations] を選択します。 f:id:hontonodeai:20151122230302p:plain
  2. [Configured Integrations]-[Incoming WebHooks]-[Add]ボタンを押して Incoming Webhook を追加します。 f:id:hontonodeai:20151122230326p:plain
  3. [Webhook URL] 欄に今回利用するURLが表示されています。 f:id:hontonodeai:20151122230339p:plain

あとは Webhook URL に対してJSON形式のメッセージをPOSTするだけです。

<?php
// [Webhook URL]欄に表示されているURL
$webhook_url = 'https://hooks.slack.com/services/xxxxx';

// Slackに投稿するメッセージ
$msg = array(
    'username' => 'Slackテスト', 
    'text' => 'Hello, Slack Incoming WebHooks.'
);
$msg = json_encode($msg);
$msg = 'payload=' . urlencode($msg);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $webhook_url);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $msg);
curl_exec($ch);
curl_close($ch);

Slackに次のように投稿されると成功です。

f:id:hontonodeai:20151122232206p:plain

Incoming Webhooks では usernametext の他にもアイコンを指定するプロパティなどが用意されています。詳細は公式ドキュメントを参照してください。

https://api.slack.com/incoming-webhooks

Microsoft Edge の JavaScript では class 構文が動く

Windows 10 を Windows Update で Build 10586 にアップグレードすると、Microsoft Edge の JavaScript はデフォルトで class 構文をサポートするようになります。

class Sample {
    constructor(name) {
        this.name = name;
    }

    hello() {
        console.log('Hello, ' + this.name);
    }
}

var sample = new Sample('class');
sample.hello();    // Hello, class

Microsoft Edge 開発者ツール複数行モードのコンソールで実行したところです。

f:id:hontonodeai:20151115233147p:plain

class 構文は ECMAScript 2015 で承認された標準仕様ですので、どのメジャーブラウザもサポートする予定です。例えば Google Chrome は試験運用機能で有効にすることで class 構文を利用できます。

chrome://flags/#enable-javascript-harmony

Mozilla Firefox では nightly builds 版で利用できます。Microsoft Edge は(Insider Previewではない)一般向けバージョンでもデフォルトで動作するようになった点は興味深いところです。MicrosoftIE での遅れを取り戻すかのように、Microsoft Edge で積極的に ECMAScript 2015 に対応しているように見えます。

ECMAScript 6 compatibility table でも「Edge 13」が Google ChromeMozilla Firefox に比べ、ECMAScript 2015 仕様の実装率は高くなっています。

PHP 7 リリース予定日

2015年11月12日はPHP 7の正式版リリース予定日でした。ところが、リリースされたのは7回目のRC版でした。

http://php.net/archive/2015.php#id2015-11-12-1

This release candidate is unplanned and ships instead of the announced RTM for the reasons of yet additional quality improvement. If no major issues appear within the usual two-week test period, the 7.0.0 general availability (GA) release will be brought out.

今回のRC7は品質向上を目的とした計画外のリリースとのことです。今後2週間で大きな問題が見つからなければ、晴れてPHP 7の正式版リリースとなるようです。リリースのタイムテーブルには 2015年11月26日 がリリース日に設定されています。

https://wiki.php.net/todo/php70#timetable

今回のRC7では10件以上のバグが修正されています。

https://github.com/php/php-src/blob/php-7.0.0RC7/NEWS

なお、公式マニュアルの日本語版にはすでにPHP 5.6.xからPHP 7.0.xへの移行ガイドが公開されています。

PHP: PHP 5.6.x から PHP 7.0.x への移行 - Manual