こんにちは、凍え死にそう、にゃむにゃむです。自分は東北に住んでるんですけどね、今-1℃です。凍りそうなくらい寒いです。暖房つけろって??自分の住んでる賃貸、石油ストーブ禁止だし、エアコンはつけると空気乾燥するから嫌いなんだよなぁ(加湿器を買えよ)
今回は、大学で6年間、そしてプログラマーとして2年間仕事を行なっている私が、「スマホでできる楽しいプログラミング」を紹介します。
自分は情報系の大学に通っていたのですが、全くプログラミングが得意ではありませんでした。授業では同期たちが淡々と課題をこなしていく中、自分だけ居残りして課題を終わらせることも多かった、落ちこぼれ人間です。ではなぜそんな私がプログラマーとして働いているのか
シンプルにプログラミングが楽しいからです。自分には向いてない職業だと思いながらも、必死になって自分が作ったアプリが世の中で動いているのを見ると、表現できないような達成感と興奮を覚えます。
こんな気持ちをいろんな人に味わってほしい、そういう気持ちで今回記事にしました。
題名の通り、この記事ではパソコンを一切使用しません。スマホだけでプログラミングを体験することを目標にしています。
このシリーズの記事は、【雰囲気体感編】と【プログラム解説編】の2つに分けます。
【雰囲気体感編】では、プログラムを動かすまでの手順のみを教えます。これを真似すれば、誰でも実際に動くプログラムを作ることができます。プログラムの中身など、専門的なことは一切解説しません。
【プログラム解説編】では、実際に使用したプログラムの中身を解説します。出来るだけ優しく解説し、誰でも理解できる内容を目指します。
今回は【雰囲気体感編】です。ではいきましょう!
作るもの
今回は、毎日生活のアドバイスを教えてくれるようなボットをLINE上に作成してみましょう。
このように、ボットさんには、指定したライングループに毎日メッセージを送ってもらいましょう。
用意するもの
- スマホ
- LINEアカウント
- Googleアカウント
以上です。この記事を見れているあなたはスマホを所有していると思うので、必要なものは全て揃っていることでしょう。
手順
lineの友達にline notifyを追加する
まず、ボットを作成するためには、LINEの友達に「line notify」というアカウントを追加する必要があります。このline notifyアカウントを通してボットがあなたにメッセージを送ってきます。これはLINEが公式で出しているアカウントなのでご安心ください。
普通の友達を追加する時と同様に、「友達検索」から「@linenotify」と検索し、追加してください。
自分とline notifyが追加されているLINEグループを作成する
line notifyを友達追加したら、自分とline notifyが入ったグループラインを作成しましょう。このグループに対して、ボットさんがメッセージを送信してくれます。
line notifyのサイトからトークンを発行する
ボットさんが先ほど作成したグループラインに対してメッセージを送る時、トークンが必要になります。これはいわゆる「家の鍵」のようなものです。この「トークン」を持っている人だけが、グループラインに対してメッセージを送信することができるのです。
googleで「line notify」と検索するか、下のリンクからline notifyのサイトに飛びます。
ここで一つ重要なポイントなのですが、PC版のサイトで閲覧するようにしましょう
line notifyのサイトでは、なぜかスマホ用のサイトだとトークンの発行ができません。
IOSでは、右下の「…」をタップし、「PC版サイトを見る」をタップすることで、PC版でサイトを閲覧することができます。Androidの場合も同様に、右上の3点メニューボタンをタップし、「ホーム画面に追加」をタップすることでPC版のサイトを閲覧できます。
PC版のサイトをリクエストしたら、右上の「ログイン」から、LINEにログインします。メールアドレスとパスワードが尋ねられます。自分のLINEアカウントに紐ついているメールアドレスとパスワードを入力してください。
メールアドレスがわからない!という人は、LINEを開いて、ホーム画面の右上にある歯車「⚙️」をタップし、「アカウント」をタップすると登録されているメアドが確認できます。また、パスワードが設定済みかどうかも確認できるので、もし設定していなかった場合はこの機会に設定しておきましょう
ログインに成功すると、右上に自分の名前が表示されるので、そこをタップします。すると「登録サービス管理」があるので、それをタップします。
「トークンを発行する」というボタンがあるので、タップします。
トークン名は、自分が分かればなんでもいいです。トークルームの選択は、先ほど自分で作成したグループを選択してください。するとトークンが発行されます。このトークンは画面を閉じると二度と表示されないので、コピーしてどこかのメモにペーストしておきましょう。また、このトークンを誰かに教えると、勝手にLINEグループにメッセージを送信されてしまうので注意しましょう。まぁこのトークンが盗まれたとしても個人情報とかは取得することできないんで問題ないんですけどね。
Google Apps Scriptを使ってプログラムを実行する
ここからはプログラミングパートです。しかしプログラムの中身の話は一切しません。とりあえずコピペしてください。
今回はプログラミング言語として、Google Apps Scriptを使用します。こちらもGoogleさんが開発しているものなので変なものではないです。安心してください。
Googleで「google apps script」と検索するか、こちら(https://script.google.com/home)のリンクを開いてください。先ほど同様、PC版サイトで閲覧してください。すると以下のようなページに遷移すると思います。「APPS SCRIPTを作成」というボタンがあるので、タップします。
すると、「無題のプロジェクト」というプロジェクトが作成されます。このままでも良いですが、名前をつけておいた方が後からわかりやすいので、名前を変更します。一番上の「無題のプロジェクト」をタップしてください。
すると編集のモーダルページが表示されるので、よしなに名前をつけてください。
右側のエディタ画面には、以下のような文字列が入力されていると思います。これがいわゆるプログラムというやつです。
function myFunction() {
}
一度、今あるプログラムは全て削除しましょう。プログラム部分をタップすると、カーソルが表示されると思うので、そのまま全ての文字を削除します。
消したら、新しいプログラムをここにコピペします。その内容は以下のとおりです。
const LINE_TOKEN = "";
function myFunction() {
const advice = getAdvice()
const translatedStr = LanguageApp.translate(advice, 'en', 'ja');
Logger.log(`${advice}, ${translatedStr}`)
sendToLine(translatedStr)
}
function getAdvice(){
const response = UrlFetchApp.fetch("https://api.adviceslip.com/advice")
const responseObj = JSON.parse(response.getContentText())
return responseObj.slip.advice
}
function sendToLine(text){
const options =
{
"method" : "post",
"payload" : "message=" + text,
"headers" : {"Authorization" : "Bearer "+ LINE_TOKEN}
};
UrlFetchApp.fetch("https://notify-api.line.me/api/notify", options);
}
今は内容は分からなくて大丈夫です。ざっくり説明すると、ランダムにアドバイスの文章を取得してきて、日本語に翻訳して、LINEに送信するというプログラムになってます。
大切なのは、このプログラムの一行目「const LINE_TOKEN = “”; 」です。
ここに、先ほどline notifyから取得したトークンをコピペしてください。具体的には、トークンが「hogehogefugafuga」という文字列だった場合、
const LINE_TOKEN = "hogehogefugafuga";
となります。
では、このプログラムをGoogle Apps Scriptにコピペします。このサイトはスマホからアクセスする用に最適化されていないので、少々コピペの癖が強いです。
まず、何も表示されていない右側の部分を長押しして、指を離します。するとメニューリストが表示されるので、「貼り付け」をタップします。これで先ほどのプログラムをコピペすることができました。
そしたら、保存ボタン「💾」を押しましょう。余談ですが、保存ボタンっていまだにフロッピーディスクですけど、今の若者って絶対にフロッピーディスク使ったことないですよね、、自分でさえギリギリ触ったことあるレベル、、
すると右側の「実行」ボタンが有効化するので、タップしてプログラムを実行してみましょう!
恐らく初回実行時は「承認が必要です」というポップアップが表示されると思います。「権限を確認」をタップしてください。
色々と注意書きが表示されますが、このプログラムを作成しているのは自分自身なので問題ないです。「詳細」をタップし、「プロジェクト名(安全ではないページ)に移動」をタップします。
「Googleアカウントへのアクセスをリクエストしています」と出ますが、このプログラムは自分自身が作成しているものなので問題ないので、「許可」をタップします。
すると、画面下部にプログラムの実行結果が表示されたと思います。おめでとう、これであなたも立派なプログラマーです!!!
LINEの方にも、しっかりメッセージが送信されてきているのが確認できると思います。
これだけでも十分楽しいと思うのですが、せっかくなので定期実行の設定をして、毎日メッセージが送られてくるようにしましょう。先ほどのGoogle Apps Scriptのページに戻って、画面左のアラームボタンをクリックします。
すると「トリガー画面」に遷移するので、右下の「トリガーを追加」をタップします。
するとモーダルで色々設定項目が出てきます。「イベントのソースを選択」で「時間手動型」を選択し、「時間ベースのトリガーのタイプを選択」を「日付ベースのタイマー」に設定します。時刻はお好みで選択してください。自分は「午前9時から10時」に設定しました。こうすると、毎日午前9時から10時のどこかのタイミングで先ほどのプログラムが実行され、LINEにメッセージが飛んでくるようになります。
ここで「保存」ボタンを押してください。もしかしたらブロックのポップアップが出るかもしれないです。その場合は「常に表示」をタップします。
英語でアラートが出ますが、これは先ほど出ていたアラートと内容は全く一緒です。同じように許可していきます。
すると認証完了画面が出るので、Google Apps Scriptのページに再度戻ってください。
もう一度「保存」ボタンを押すと今度は成功するはずです。保存に成功すると下のようにトリガーが1つ追加されます。これで、自分が設定した時間にLINEにメッセージがくるようになります。
まとめ
お疲れ様でした!どうでしたか、楽しんでいただけたでしょうか?中でどんなプログラムが動作しているかはまだ分からないと思いますが、それでいいと思います。何より、「楽しい!」と思う気持ちが大事だと思います。
今回の仕組みを利用すると、以下のような仕組みが構築できたりします。
- 自分の好きなアーティストのホームページで情報が公開されたら、LINEにメッセージを送る
- gmailで受信した重要なメールは、本文をLINEに転送する
- google formで誰かがフォームを送信したら、その内容をLINEで受け取る
などなど、LINEとさまざまなサービスを連携できるので、非常に便利です。
次回は【プログラム解説編】ということで、今回扱ったプログラムについて優しく解説しようと思います。興味がある方は是非!ではまた〜
コメント