2016年9月21日水曜日

PHPからslackに投稿する(WebPI)

最近ますます流行ってきているSlackを導入してみて2日経過した。
PHPからPOSTで投稿してみた。
rsyslogと連携して、sshdのログイン/ログアウトを通知するようにしてみた。


#attachmentsの入れ方がわからなくて、ものすごく苦労したOrz

<?php
echo "sndmsg_slack.php run...".PHP_EOL;
$slackApiKey = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
$url = "https://slack.com/api/chat.postMessage";
$argchk = false;
if(count($argv) == 4){
if($argv[1]=="GET"){
$argchk = true;
/// GET ///////////////////////////////////////////////////////////
$query = [ 'token' => $slackApiKey,
'channel' => '#'.$argv[2],
'text' => str_replace("\\n",PHP_EOL,$argv[3]),
'as_user' => 'true'
];
echo "[GET]URL=".$url.http_build_query($query).PHP_EOL;
$result = file_get_contents($url."?".http_build_query($query));
echo $result.PHP_EOL;
///////////////////////////////////////////////////////////////////
}
}
if(count($argv) == 7){
if($argv[1]=="POST"){
$argchk = true;
/// PST ///////////////////////////////////////////////////////////
$attachment = ['pretext' => $argv[3],
'color' => $argv[4],
'title' => $argv[5],
'text' => $argv[6]];
$query = [ 'token' => $slackApiKey,
'channel' => '#'.$argv[2],
'attachments' => json_encode(Array($attachment)),
'as_user' => 'true'
];
$options = array(
'http' => array(
'header' => "Content-Type: application/x-www-form-urlencoded\r\n",
'method' => 'POST',
'content' => http_build_query($query)
)
);
$context = stream_context_create($options);
echo "[POST]QUERY=".json_encode($query).PHP_EOL;
$result = file_get_contents($url, false, $context);
echo $result.PHP_EOL;
}
// $result = json_decode($result);
// $obj = json_decode(json_encode($query));
// var_dump($obj);
}
if(!$argchk){
echo "[mode] [channel] [text]".PHP_EOL;
echo "\tmode\tGET or POST".PHP_EOL;
echo "GET [channel] [message]".PHP_EOL;
echo "POST [channel] [pretext] [color] [title] [text]".PHP_EOL;
}
?>
view raw sndmsg_.php hosted with ❤ by GitHub

2016年9月20日火曜日

Slackインストール

〇〇botとか作ってみたくて、でもLineは私用なので、分けてみたいと思っていたら、slackというものを発見した。

これなら今までメール通知でやっていたものを置き換えできそう!!

メール通知
http://webos-goodies.jp/archives/50645131.html


<参考>
http://toach.click/slack-botkit/
http://lab.aratana.jp/entry/2014/12/04/185053
http://tech.machiiro.jp/entry/2016/05/13/090000
https://elstreet.style/?p=1124
https://elstreet.style/?p=1099

2016年9月3日土曜日

MPLABXをLINUXで使ったら文字化け

バージョンアップの度にはまるので、備忘録として

日本語が表示できるいい感じのフォントをfonts/fallbackにぶち込んでおく

/opt/microchip/mplabx/v3.40/sys/java/jre1.8.0_91/lib/fonts/fallback/ipag.ttf
/opt/microchip/mplabx/v3.40/sys/java/jre1.8.0_91/lib/fonts/fallback/ipamp.ttf
/opt/microchip/mplabx/v3.40/sys/java/jre1.8.0_91/lib/fonts/fallback/ipam.ttf
/opt/microchip/mplabx/v3.40/sys/java/jre1.8.0_91/lib/fonts/fallback/ipagp.ttf

これだけ。毎回忘れる。Orz