こんにちは。ホーさん(@hoosan16)と申します。
オープンβ版のALIS初投稿です。どうぞお見知り置きを。
この度、好きなALISユーザの新着記事をお知らせするフォロー機能、「ALIS Notify」を開発しましたのでご報告します。
ALIS Notifyは、フォローしているライターの方が新たに記事を投稿した際に、TwitterのDM機能を用いてお知らせします。また、フォローする人の追加、解除、確認もDMで特定コマンドを入力することで可能です。
ALIS本体には、まだフォロー機能がありません。不便に思われている方も多いかなと思い、開発しました。
前提としまして、TwitterのDM(ダイレクトメッセージ)でフォローの設定と新着記事を通知する仕組みですので、Twitterアカウントが必要です。
DMによる通知受け取りに必要です。通常、フォローしている人以外からのDMが受け取れないためです。(フォロー外からのDMを許可している設定の方はフォローしなくても大丈夫です)
ユーザーIDは、ALIS登録時に決めたログインID(変更不可)のようなもので、以下のような記事のURLの太字部分です。私ですと「fukurou」です。ペンギンですが。
https://alis.to/fukurou/articles/aEOLPyAj98gz
あるいは、ユーザページや記事のフッターを確認いただくと、「@」から始まる半角英数字の文字列があると思います。@を除いた英数字、例えば下画像のうめ吉さんだと「umekichi」がユーザーIDです。
ALIS NotifyアカウントへのDMで、「フォロー」を最初の行に、2行目からフォローしたい人のユーザーIDを1行ずつ記入し、送信します。以下は例です。
フォロー
umekichi
fukurou
PC環境(設定)によっては、エンターを押すと改行でなく即時送信されてしまうようなので、そういう場合にはShift+Enterで改行できると思います。
送信すると、自動で以下のような返信がきます。これでフォロー設定が完了です。
フォローしている人のリストは、
リスト
とDMすると確認することができます。
フォローの解除は、1行目に「フォロー解除」(あるいは単に「解除」)、2行目以降にユーザーIDを1行ずつ記入し、DMします。
オマケ機能として、1行目に「ユーザ情報」(あるいは「情報」)と入れ、2行目以降にユーザーIDを記載することで、ALISのユーザページへのリンクを返信してくれます。
ユーザーIDで管理してると、誰が誰だかわかんなくなったりするので。確認用です。
4. DMで通知が受け取れます
フォローしている方から新しい記事が投稿されると、自動で検知してDMから記事のリンクとタイトル&冒頭が通知されます。
自分用にフォロー設定した方の最初の投稿はMALISさんの記事でした。
今回の開発で使ったものの構成は以下の通りです。
使用言語: Node.js(JavaScript)
データベース: mlab(mongodb)
サーバ: Zeit Now
その他: Twitter API(DM処理),Uptime Robot(定期実行)
JavaScriptでちゃんと動くWEBアプリ作ったの、今回が初めてでした。色々なクラウドサービスをなんとなく理解しながらJavaScript(Node.js)での開発手順を実践的に学べたのでとても有益でした。私と同じような駆け出しの方には最初のプロダクトとしてもオススメできる構成ではないかなと思います。完全無料です!(語気強め)
サーバはNowというPaaS(Platform as a Service)を使いました。以前、億ラビットくん(@ocrybit)がALIS投げ銭BOTのテンプレートを公開して下さった時に紹介されていたもので、これは便利と思ってチャレンジしてみました。
レスポンスはそんなに速くないようですが、今回のような定期実行系のアプリ+若干のリアルタイム返信程度ならそれほど問題にならないかなと思います。ユーザーが多くなると辛そうですが、ALISの現在の人口なら問題ないかなと。人がたくさん集まる頃にはALIS本体にフォロー機能がついてるはずなのでお役御免でしょう。「ALIS Notify」は途中までHerokuに置いていたのですが、無料時間枠がもったいないのでNowに移行しました。Twitter API用のwebhookと通知用にそれぞれエンドポイントを用意して、通知の方は外部からUptimerobotで定期的にアクセスするようにし、その度実行されるような仕組みになってます。
あと、ALIS Notifyというネーミングは、はるか先生の以下の記事から拝借しました。
それでは。もし気になったら試しに使っていただけると嬉しいです。質問ありましたらお気軽にどうぞ。ただ、浅い知識で開発してるのであまり突っ込んだ技術的なことは分からず、そういう話がしたい方は私が所属しているプログラミングに関するフリーコミュニティ「#駆け出しハッカー部 」へどうぞ!(こちら)
今回の開発がどなたかのお役に立てますように。
作者のツイッター↓
ALIS Notify↓