BOT

Slackにネイティブアプリのエンジニアに優しいBOTを作ってみた

皆さんSlack使ってますよね。 今じゃIT企業以外にもSlackが導入されてて日本への浸透も広がってきたと思います。   背景 今は趣味で色々やってるんですが、開発したAPIを叩くiOSエンジニアに 「最近のアクセスログが欲しい」 「エラーログ見せて欲しい」 等、色々と言われます。 ネイティブアプリのエンジニアはそもそもサーバーにログインする習慣がないので SSHのアクセス権限等を付与してあげてもインフラに関する知識や、覚えることが増えるので 直接聞いてきます。 これを解決するためにSlackのBOTがやるようにすればお互い楽なんじゃね?と思い、 作ってみた結果良かったのでチラ裏程度にご紹介です。   Buri Bot できることは ・APIサーバーのアクセスログを返す ・APIサーバーのエラーログを返す ・DBのテーブルを全て空にする ・DBのテーブル レコードを返す と言った、必要最低限のものを実装しました。   アクセスログを見る とりあえず最新の3件だけ   エラーログを見る エラーログはとりあえずの最新の1件だけ   テーブルを全部空にする APIを叩きすぎてぐちゃぐちゃになったテーブルをリセットするには とても便利。   テーブルの中身を見る GetRecord <テーブル名> <環境(stg|dev)> where <カラム> <値>みたいな感じで見る。 レコード数が多いとどうなるか分からない(文字制限が分からない)のでとりあえずwnereで規制しました。   結果 文字化けしててよく分からないけど便利だってことは分かりました。

【PHP】LINE Messaging APIで田村ゆかりさんの公式サイト更新通知BOTを作りなおした #yukarin

従来のLINE BOT APIが廃止予定ということで 新たに発表されたLINE Messaging APIに移行しました。   作ったものはこんな感じ普通です。 LINE Messaging API は管理画面から背景色とかアカウント設定できる項目はめっちゃ増えてて LINE BOT APIよりは個性的なものが作れそう(^o^) 田村ゆかりさんに興味がある人、待ってます\(^o^)/     LINE Messaging API 誰でも手軽に叩けるAPIです。 BOTも作成できるし、管理画面も用意されてて分かりやすい。 無料で作成するBOTはユーザーの発言に対しての返信はできる(REPLY_MESSAGE) が BOTから直接メッセージを送信(PUSH_MESSAGE)するのは月2万ぐらいかかる。 しかし友達登録上限50人という制限付きBOTでは REPLY_MESSAGE & PUSH_MESSAGE どちらも使える。 従来のLINE BOT APIと変わったことはそんなことなくて 移行難易度はそんなに高くないと思います。   Webhookの設定 今回実装にあたって少しだけハマったところは Webhookの設定で、CloudflareのSSL機能を使ったサーバーを指定すると Webhookが飛んでこないという仕様だった。 LINE BOT APIでは使えたんですけどね、いずれか使えるようにはなりそう。 ちなみにLet’s Encryptでは可能です。     実装 今回もPHPです。 特に理由はありません。楽だからです。   callback [crayon-5b4efade97ed7379150238/] [crayon-5b4efade97ee4004014700/]   LINEからのアクセスかどうかは従来のLINE BOT APIと同じで [crayon-5b4efade97eea047496840/] こんな感じで署名の確認ができる。     Push(BOTからユーザーへメッセージ送信) [crayon-5b4efade97eed048933695/] [crayon-5b4efade97ef6098189200/] LINEにリクエストを投げるときはCHANNEL_ACCESS_TOKENをヘッダーに載せるだけ。 LINE DeveloperからサーバーのIPをホワイトリストに登録する必要はあります。 今回の話に関係はないですけどGoutte便利だし何より速い。   メッセージを送信する関数は [crayon-5b4efade97ef9137353088/] 特筆することなし!     戯言 Webhookに関してはイベント内容がJSON見れば一発で分かるようになったので楽でした。 LINE BOT APIでは type 1 が友達追加時で~ type3 がユーザーからのメッセージとかで 分かりにくかった。 あとはドキュメントも日本語が用意されて、各言語のSDKも用意されているので 比較的容易に移行(作成)できました。 ソースコードはこちら rluisr/yukari-line-botA – github

田村ゆかりさん公式サイトの通知を LINE BOT API で作ってみた。 #yukarin

LINE BOT が先着1万人に配られるということで乗ってみた。 今日も相変わらずPHP 今回は 田村ゆかりさんの公式サイトが更新される度にLINE BOT APIを通して通知するといったものを作った。   登録の仕方 左記QRコードで友達追加をして、1度メッセージを送信すると登録が完了になります。 なんで1度メッセージを送信する必要性があるのかは後で説明しまうす。     雑書 [crayon-5b4efade983da069002288/] LINE BOT APIの登録の仕方はQiitaの方が詳しく説明されてるので割愛します。 このファイルは最初の登録のときにしか使いません。 何でだか知らないけど登録者全員にメッセージを送るAPIもないし、登録者全員のID(mid)を取得するAPIも今のところないので 1度メッセージを送ってもらって、ファイルに保存するといった方法を取りました。他にいい方法あったら教えて下さい…。   [crayon-5b4efade983e7663435063/] 本当は1つのファイルに纏めたくて、引数有無で条件分岐してたけど不格好になっちゃうし見栄えが悪かったので別々にしました。 midがまとめられたファイルを配列に入れてforeachで回してますが、 「mid,mid,mid」みたいな感じで一斉送信できるらしいです。 で、でも改行を”,”で置換して文末の”,”を削除して~って流れよりforeachの方が楽な気がします。最初から「mid,mid,mid」みたいな感じで保存すればいいだけなんですけどね。 更新されると以下のようなメッセージが届きます。   新しくAPIが追加されることを願います。 ちなみにスクレイピングに関しては運営に承認済みです^ー^