slack APIの使い方
他のサイトだといまいち使い方が分からなかったので、自分用に記載しておく。
chat.postMessage method | Slack
例えば、chat.postMessageを使用する場合は、FactsのMethod URLに色々とパラメータを付加してく。
https://slack.com/api/chat.postMessage?token=YOUR_TOKEN&channel=YOUR_CHANNEL_ID&text="Hello, World!"
とやれば、とりあえず指定したチャンネルに書き込む事が出来る。
Tokenは、Legacy Tokenを使用した。簡単に取得出来るので、とりあえずはこれで。
今は別の新しいやつが有るらしいので、そっちを使うのがベストっぽい。
$_SESSIONでページ遷移の時にもデータを保持する
phpで$_SESSION関数を使用して、ページング(ページ遷移)の時にもデータを保持したい。
ローカルでは、
<?php session_start(); ?>
が必要だが、レンタルサーバー等にアップする場合には、session.auto_startが有効になっている場合は、不要です。
もちろん、ローカルでもphp.iniでsession.auto_startが有効であれば不要です。
ちなみに、自分はこのsession.auto_startが有効になっている事に気づかずに、session_start();を書いてたせいで上手く動作しませんでした。
<?php $_SESSION['keyword'] = "音楽"; ?>
とかやれば、$_SESSION['keyword']に"音楽"が代入されます。
$_SESSIONは、ブラウザが閉じられるまでデータを保持するので、途中でデータを消したい場合は、
<?php $_SESSION['keyword'] = ""; $_SESSION['keyword'] = array(); unset($_SESSION['keyword']); ?>
以上はどれも同じなので、好きなやつを使えばいいかな、と。
個人的には, = ""のやつを使ってます。
PHPで今日の日付に1日足す
例えば、2018年6月6日から2018年6月7日までの期間に絞ってデータを抽出したい時があるとする。
<?php $objDateTime = new DataTime('NOW'); echo $objDateTime->format('Y-m-d'); ?>
と実行すると、
2018-06-06
という風に値が得られる。
ので、ここに1日を足そうと思う。
<?php $objDateTime = new DataTime('NOW'); echo $objDateTime->modify('+1 days')->format('Y-m-d'); ?>
という風にするだけ。
勿論、echoの部分を$nextDay等適当に変数を付けてあげれば、使いやすいと思う。
今回はNOWではなく、入力したフォームの日付をGETで取得し、それに1日を追加したがやり方は同じ。
<?php $objDateTime = new DataTime($_GET['date']); echo $objDateTime->modify('+1 days')->format('Y-m-d'); ?>
という風にするだけで、GETで取得したname=dateの値に1日追加する事ができる。
簡易的に足すのであれば、
<?php $nextDay = ++$_GET['date']; ?>
でも問題はない。ただこれだと、1日しか追加出来ないし、31日とか月末を指定された場合はエラーがでるので、上記の方法でやるのがベストだと思う。
IFTTTのWebhooksをphpで使う
昔から知ってて気になってたIFTTTを使ってみた。
実際、どう使えばいいのかいまいち分かってないけど、とにかく便利らしい。
Webhooksは自分で作成したアプリやWebなどに埋め込んで、URLにPOSTかGETで投げることで、動作を行う事ができるやつ。
<?php $name = 'Sample'; $json_data = array( 'value1' => $name, ); $URL = "http://maker.ifttt.com/trigger/{EVENT_NAME}/with/key"; $URL .= $YOUR_KEY; $options = array( 'http' => array( 'method' => 'POST', 'header' => 'Content-Type: application/json', 'content' => json_encode($json_data), ) ); file_get_contents($URL, false, stream_context_create($options)); ?>
以上で出来る。file_get_contentsは使わない方が良いって書いてある記事もあったけど、とりあえずはこれで。curlを使うのがベストらしい。
$json_dataの配列の中のkeyは、IFTTTで設定をしたkeyと揃えると良い。
この画像の場合だと、$json_data = array( 'value1' => $name ); とかしてあげれば良い。
スマホの方でIFTTTのアプリを入れておけば、そっちに通知が行く。
使い道はイマイチ思いつかないけど、とりあえず使えるようになった。
ある特定の事をしたいためのvimコマンド
とあるプログラム作成の時にしか使わない、vimのコマンドをメモっておこうと思う。
あくまでも研究室用。きっと来年以降役に立つと思う。
q w // 記録モードに <Shift + I> // 行の先頭に移動 \item // \itemは手入力 <Esc> // Escで一旦入力モードを終わる <Shift + $> // 行の一番後方に移動 a // 入力モード \\ // \\を手入力 <Esc> j // 一つ下の行に下がる <Shift + I> \textit { <Esc> <Shift + $> a } <Esc> j ^ q // 記録モードを終了する
使う時に、
@w
を入力するだけ。
追記:
実際の使い方としては、Texで大量に
\begin{itemize} \item Sample\\ \textit{This is sample} \item Sample2\\ \textit{This is sample2} \end{itemize}
とか打つ時に、一々カーソルを左に動かして\itemって打ったり、右に動かして \\ って打ったりするのが大変なので、vimでまとめて一気にやりたい。
という時に使うのが上で書いたやり方。
同じような形式の物がずっと並んでいるのであれば、vimでまとめたやった方が確実に早い。