LINEのAPIを使いこなそう!

LINEのAPIを知っているでしょうか?現代ではLINEはほとんどのスマホユーザーが利用しています。1つのツールとしてLINEのAPIを知っていると課題解決の方法が広がると思います。今回はLINEのAPIの導入方法を紹介したいと思います。

おしながき

  1. LINEのAPIの活用事例
  2. LINENotifyについて
    • Notifyの概要
    • 使い方(実装する直前まで)
    • やってみた
  3. LINE Messaging API SDK
  4. まとめ

LINEのAPIの活用事例

LINEのAPIを活用すると本当にたくさんのことができるようになります。公式LINEの仕様を変更することや、チャットボットの作成、アンケート集計などなど多岐にわたります。もちろんこのようなシステムは複雑でレベルも高いです。しかし、「メッセージを送るだけ」なら簡単にできます。なので、制作活動の中で必要な機能を少しずつできるようになれば、いずれ複雑なものを作れるようになると思います。

LINE API USE CASE」にはLINE が公式に公開しているAPIの活用法になります。レベルがとても高いですが、見てみると想像が膨らむと思います!

LINENotifyについて

Notifyの概要

LINENotifyはご存じでしょうか?

LINENotifyというのは「Webサービスからの通知をLINEで受信するツール」です。もう少し詳しく解説すると「Webサービスと連携すると、LINEが提供する公式アカウント”LINE Notify”から通知が届きます。複数のサービスと連携でき、グループでも通知を受信することが可能です。」となります。

LINENotifyサイトはこちら

LINENotify API Documentはこちら

Notifyの使い方(実装する直前まで)

ここでは、Notifyの「サービスへの登録」→「送信するルームの選択」→「トークンの発行」までを行いたいと思います。

LINENotifyのサイトはこちら

やってみた

import requests

TOKEN = 'トークンをペーストしてください'
url = 'https://notify-api.line.me/api/notify'
send_contents = 'LINE大好き'

TOKEN_dic = {'Authorization': 'Bearer' + ' ' + TOKEN} 
send_dic = {'message': send_contents}
requests.post(url, headers=TOKEN_dic, data=send_dic)

このコードを実行すると、先程決めたトークルームに「LINE大好き」と送られます。また、少しコードを増やすと画像も一緒に送信できるので、やってみてください!

この方の動画がとてもわかりやすいので、参考になると思います。

LINE Messaging API SDK

前のブロックでは「LINENotify」を扱いました。これは簡単に使えるので、とても便利な反面、できることにどうしても制約があります。今回紹介する「LINE Messaging API SDK」ではできることが格段に増えます。

できることの一例

LINECLOVAなどのAIとの 連携

LINEミニアプリでの活用

LINEPay決済ツールとの 連携

他サービスとLINEログインの連携

MessagingAPIを活用し双方向性のコミュニケーション

などなど、LINEサービスを使い尽くすことができます。

もちろん言語もほとんど網羅されいて、GitHubでAPIリファレンスが公開されています。URLはこちら

MessagingAPIではLINENotifyとは異なり、より多くの人にメッセージを送信でき、双方向性があるので、チャットボットの作成やAIも組み込むことができたら面白そうですね!

まだ、わからないことが多く、導入例などは今回は紹介しないのですが、今度作成したら紹介したいと思います。

まとめ

今回はLINEのAPIサービスの紹介を行いました。「LINENotify」は簡単に導入できるので、一度試してみる価値は全然あると思います!また、MessagingAPIもメッセージを送信するだけなら難しくはなく、Youtubeの動画などを参考にしたら活用できると思います。他のブログの時にMessagingAPIを活用したので、リンクを載せておきたいと思います。

また、LINEのビジネス用アカウントでは、メッセージ配信もできるので、チャックしてみるのもアリかもしれません。

今回のブログを通じて、LINEのAPIサービスを使うきっかけになればと思います。

ラズパイを用いたNFCリーダの作成③

前回までは、ラズベリーパイとモジュールの接続の方法や、仕組みなどを説明してきました。まだ、見ていない方は見てみてください。

今回は、実際にPythonのコードとどんなことに気を付けてコードを書いたかを残していきたいと思います。

おしながき

  • 使うライブラリ一覧
  • メインのコード
  • LINEを送信するためのコード
  • MFRC522を読み込むためのいろいろなファイル
  • まとめ

以上5本立てでいきます。

使うライブラリ一覧

今回使うライブラリは

インストールしてください!

メインのファイル

  • time
  • sympy

LINEの送るファイル

  • line-bot-sdk
  • json

NFCを読み込むファイル

  • sys

これらが使用するライブラリになります。timeやsysといった有名ライブラリはanacondaパッケージに入っていますが、line-bot-sdkといったマイナーなライブラリはパッケージに入っていないので、ターミナルやコマンドプロンプトからインストールしましょう!

メインのコード

import linebot2
from time import sleep
import sample

memberlist={'000000000000':'20e18AA','1111111111111':'20e18BB','222222222222':'20e18CC'}
#memberlistには'タグの12桁':'管理したい学籍番号'の順番で記述

membercount={'20e18AA':0,'20e18BB':0,'20e18CC':0}
#membercountは入退室を管理する番号
 
while True :
    id_num = sample.read()
    print(id_num)
    number= str(id_num))
    print(memberlist)
    try :
        input_count = memberlist[number]
        #print('input_count:',input_count)
        #input_count(学籍番号)
        for i in membercount.keys() :
            if input_count == i :
                membercount[i]=membercount[i]+1
                if membercount[i]%2==1 :
                    message=i+'入室しました'
                    linebot2.main(message)
                    print('Complete')
                    sleep(3)
                    break
                else :
                    message=i+'退室しました'
                    linebot2.main(message)
                    print('Complete')
                    sleep(3)
                    break
            else :
                continue
    except KeyError:
        input_new=input('新しく登録しますか?_はい→1いいえ→2')
        if input_new=='1':
            input_name=0
            input_figure=input('学籍番号を教えて下さい(半角英数字)')
            membercount[input_figure]=input_name
            memberlist[number]=input_figure
            print('登録できました')
            sleep(5)
            continue
        else:
            print('はじめからやり直してください')
            sleep(5)
            Continue

この長いのが今回のメインのコードになります。前回のブログでの登録していないタグが来たときにも、新しく辞書に追加できるように仕様を変更しました。基本的にはwhileで回しながら、分岐をしていく簡単なものです。書き方がかなり乱雑ですが、一応動きます!

LINEを送信するためのコード

import json
from linebot import LineBotApi
from linebot.models import TextSendMessage


file=open('info.json','r')
info= json.load(file)

CHANNEL_ACCESS_TOKEN=info['CHANNEL_ACCESS_TOKEN']
line_bot_api=LineBotApi(CHANNEL_ACCESS_TOKEN)
def main(message):
    messages=TextSendMessage(text=message)
    line_bot_api.broadcast(messages=messages)
{CHANNEL_ACCESS_TOKEN":"ここにアクセストークンをペースト",
"USER_ID":"ここにユーザIDをペースト"}

 ここでは、LINEを送信するためのコードになります。ポイントはJsonファイルを使用しています。JsonファイルでユーザIDとアクセストークンを保存することで、スマートになるのかなと思います。

 Pythonファイルでは、Githubに公開されているものから使用する部分を残したものになります。一つ変更点があります。、公式ドキュメントの例では、「line_bot_api.push_message」となっていますが、「line_bot_api.broadcast」に変更することです。push_messageではUserIDの1番先頭の人にしかLINEが送られません。今回は、複数名に入室のLINEを送信したいので、push_messageでは要件に合いません。しかし「line_bot_api.broadcast」に変更することによって、全員に送信することになるので、非常に便利です。

MFRC522を読み込むためのいろいろなファイル

この隣のファイルは前回のブログでも紹介したGitHubのファイルになります。前回のブログからダウンロードした場合にはダウンロードは不要です。このファイルの中には追加でSample.pyのファイルがあります。そのファイルは今回の「入退室システム」用に引数や、return値をいじったものなので、使用する際には活用していただけたらと思います。

まとめ

以上が「入退室システム」のコードになります。繰り返しになりますが、コードの書き方が綺麗ではなく、見にくい箇所や回りくどい書き方や間違っているが多々あると思います。そのときには、良い感じにしていただいて使っていただけたらと思います。

一つの作成を通じて、Pyhtonだけでなく、LINEについて、ラズベリーパイについて、たくさんの学びにつながりました。教育学部技術科の範疇は超えているかもしれませんが、このような学びを行うことができて良かったと思います。

以上で「ラズパイを用いたNFCリーダの作成」終了です。

ラズパイを用いたNFCリーダの作成②

今回は、実際にどのようにNFCリーダを作ったのかをこのブログを通じて残していきたいと思います。

おしながき

  • ラズペリーパイとモジュールの接続方法
  • モジュールとNFCの簡単な仕組み
  • 入退室システムの簡単な説明
  • まとめ

以上の3つで今回は作成していきたいと思います。前回のブログはこちらから見れるので、見ていない方は先に見てもらったほうがいいと思います!

ラズペリーパイとモジュールの接続方法

ラズベリーパイとモジュールの接続に関してはとても簡単です。図で表すとこのようになります。

ラズベリーパイとの接続方法を表した図

また、複数のセンサを活用したいときにはブレッドボード使うと複雑にはなりますが、レベルが高いこともできるようになります。インターネットで調べると細かい規格なども出てくるので、興味がある人は調べてみてください!

モジュールとNFCの簡単な仕組み

NFCとモジュールはどのような仕組みで個々のタグを識別しているのでしょうか?

このモジュールにはされている白いカードと青いタグが付属されています。それらにはそれぞれ12桁の番号が登録されています。それらを読み取ることで個々のタグを識別することができます。

今回はその番号と管理したい学生の学生番号をPythonの辞書形式である「キー」「値」で結びつけることができます。

では、どうやって番号を読み取るのか?

それは、すでに作られてるファイルを使います。

Githubから既存で作られているものを使います!リンクはこちらからお願いします!

入退室システムの簡単な説明

簡単な説明をGoogleスライドにまとめました。こちらをご覧いただけたらと思います。

まとめ

今回は「ラズベリーパイとモジュールの接続方法」「モジュールとNFCの簡単な仕組み」「入退室システムの簡単な説明」を行いました。前回に比べ内容が少し深くなり、専門知識感が増したかなと思います。 この入退室システムは一例にすぎなく、もっと他にいい管理方法やライブラリがあると思うので、もう少し、学習を進めたらと思います。次回はPythonのコードをもとに作成したものを解説していきたいと思います。

2022年 Golden Three Days 第2部

地元柏崎市の映えスポットへGO!!

こんにちは。小倉研のMacです!

前回の第1部は見ていただきましたか?(^^)
今回も引き続き ”第2部” 書いていきたいと思います!

5月3日⚪⚪県へ旅行に行った次の日、地元新潟の柏崎市に帰省しました~。

柏崎市は海と山に囲まれたとっって~~も自然豊かなところです^^(い、田舎じゃないよ…)

そこで今回は、日本一海に近い駅 その名も”青海川駅!!”に行ってきたので、
その景色をご覧ください!!

癒やされましたか~?(*^。^*)
電車の本数は少なく、車がないと行きづらいかもしれないですが、良かったら見に行って見てくださーい!笑

以上、今年のGTD(GW)でした!!(^<^)

GWの思い出

はじめまして、今年度から小倉研究室に所属しましたFmountと申します。

三日坊主が得意な主ですが、始めたからには様々なことを書いていくので
よろしくおねがいします (*´∀`*)

さて今回が初投稿であるわけですが、テーマは大型連休の思い出です。
みなさんは今年どのようなGWを過ごしましたか?

私は高校の同期が集まりワイワイガヤガヤ過ごしました。その人数なんと7人!
一人でも狭い部屋なのでどんな状況だったかはご想像にお任せします(笑)
大型連休前半は草津と青木湖へ、後半は新潟に帰りゆっくりしていました。

今年は去年よりもコロナが落ち着いてきたのもあり混んでいるかなという予感でしたが、大型連休前半は雨予報ということもありそこそこの人出でした。

DAY1(4/30)

本来の計画なら志賀草津高原ルートを通って草津へ行くはずがなんと前日に雪が降り、(5月にもなろうという日に雪が降るもんですね. .)最悪計画そのものが頓挫する可能性さえありました。しかし中山道の難所であった鳥居峠は通れたので嬬恋経由で草津に入りました。
そしてその道中私のお気に入りの道であるつまごいパノラマラインはこの日も絶景でした。

草津や嬬恋に寄る際はぜひこの道を通ってほしいです

DAY2(5/1)

この日は国道406,148,147,403号を経由して鬼無里村・青木湖・松本・聖高原に行ってきました。本来は青木湖で引き返し帰ってくる予定でしたが青木湖に行った段階で松本に行くか!となって急遽行きました(超絶無計画)。

白沢洞門、天気が良ければここから北アルプスの絶景が見られますが. . .

DAY3(5/3)

新潟へ帰るには一般的には国道18号や117号で行きますが今回は時間があったので山中の道を通って帰りました。

新潟ではもう水田に水が張られ、早いところでは田植えをしていました。
一昨年までは新潟にいたので田植えの季節なんだなぁと長野にいるからこそ感じました。

弁慶滝と妙高山

今年のGWは非常に充実した日々となりました👍

はんだ付け

こんにちは。二年のらんです。

先日電気電子実習ではんだ付けを行いました。

はんだ付けで気を付けることとしては、安全に使うことはもちろんですが、はんだはすぐに固まってしまうので、はんだ→はんだごての順に基板から離すようにしましょう。

それにしても基板に抵抗やトランジスタをはんだ付けするだけで機械が動くなんてすごいですよね。

今後の実習もみんなで楽しく頑張っていきたいと思います。

最後に、はんだ付けの練習のときに作ったものを載せておきます!

2022年のGolden Three Days 

山梨県へのお出かけ

お久しぶりです! 小倉研のMacです!

今年(2022年)の5月3・4・5日はゴールデン・ウィーク……いや、信大もの技にとってはゴールデン・スリーデイ(; ;)ホロホロ
いろいろお出かけしたので2部に分けて投稿しようと思いまーす!!

Let’s get started👍

第1部

5月3日山梨県の富士急ハイランドへ行ってきました!

これは“FUJIYAMA!!” 最高時速なんと130km/h( ゚Д゚) 約3分30秒の旅!?
待ち時間200分の後、乗車!!

こりゃ怖かった… けど、めっちゃ楽しかったから閉園間近に2回目!!笑笑
4人で行って1人(TT)( ̄∇ ̄)。

こちら”ええじゃないか”最高時速126km/h 回転数なんと1…14回!?!?
足がぶらぶらの状態で、身体はぐるんぐるん(*_*)
終わった後は髪の毛ボッサ笑 

ここまで第1部でした!
最高に楽しい1日でした!!皆さんも是非行ってみてください(^<^)
TO BE CONTINUE

部屋を片付けたい、、、

こんにちは。peaceです。

今日(5/9)でGWも終わり、授業がスタートしました。
皆さんはGWどのように過ごしたでしょうか?

私は、自転車で長野市内を走り回ってました~笑

目的は、部屋作りでほしいものをホームセンターで探すこと+ゲームセンター巡りです!

ホームセンターで探していたのは、「スノピタ」というアイテムです!これを使うと、すのこを使って壁面収納を作る事ができます。『部屋が狭くて棚が置けない』や、『部屋の収納が少ない』など、収納に困っている方。ぜひ、「壁」を有効活用して見て下さい!
→壁面収納ができ次第、ブログを更新しようと思います!

これまでに取った呪術廻戦のぬいぐるみ達

ゲームセンター巡りでは、UFOキャッチャーを見てきました(7店舗くらい)。目的としては、景品を取ることよりも、どのゲームセンターがとれやすそうかな~という視点で見てきました。個人的にはラ○ンド1にあるゲームセンターが、ゲームの設定や取りやすさ的にも、いいなぁと感じました。
個人的な意見ではありますが、参考にしてみてはいかがでしょうか?笑

以上、GWの報告でした~。

浜松へぶらり旅

こんにちは。magnetです。

最近、何かと忙しくて時間に追われています。

充実している反面、これで良いのか自問自答しています笑

 

ところで、本日 (5/8) はゴールデンウィークの終盤ですね。

私は実家に帰りましたが、どこかに行きたい欲があり、

浜松まで行ってきました。

 

目的地を1つ決めて、その前後に

時間が許す限りどこかへ行く

と言った具合です。

 

最初に SWEETS BANK というところに行って来ました。

めちゃくちゃきれいでした。そしてカップル多かった……

SWEETS BANK

カフェが併設されているので、お昼を食べようとしたら…

驚異の1時間半待ちでした。

ゴールデンウィークだからしょうがない…

日帰りの身からすると、時間が惜しかったので、渋々諦めました……

日帰りは、割り切りが大事なのです…泣

今度は是非食べに行きたい!

 

次は、浜松城 に行こうと思い、

バス停まで行くと、近い時間が無い!ことに気づきました。

「じゃあ歩いて行きます(40分)」

1人旅ならではの思考ですね笑

住宅街とかをただただ歩くことも好きですから、

全然、苦では無かったですよ。ええ。

そして辿り就いた浜松城。

長い道のりでしたが、景色が良かったです。

天気が良いと富士山がうっすら見えるとのことでしたが、

残念ながら、私の目には、映らなかったです……

景色全般、撮るの忘れましたが。

 

最後は、徳川家康にご挨拶して帰りましたとさ。

そういえば、誕生日一緒なんだとか。

なんか縁を感じますね。

 

ここまで、浜松へのぶらり旅を報告しましたが、

なんか煮え切らない思いでいっぱいです。

今度は、誰かと一緒に車で、行きたいです。

 

以上、magnetのぶらり旅報告でした!

では、また!

ラズパイを用いたNFCリーダの作成①

どうもこんにちは、NFCを皆さんご存じでしょうか?身近なところだと、Suicaなどの交通系ICやUNIQLOやGUなどの会計の時に自動でアイテムを識別してくれるのもNFCの技術が用いられています。

さて今回作っていくのは、「ラズベリーパイ」「NFC」を組み合わせて、研究室の入退室システムを作っていこうと思います。

おしながき

  • システム要件
  • 今回使用するNFCリーダのモジュールについて
  • 通知方法について
  • まとめ

システム要件

今回のシステム要件(作りたいもの)は以下の通りです。

  • 言語はPython
  • NFCリーダ「MFRC-522 RC522 RFID」の採用
  • カードを読み取ったときにLINEにて通知を行う
  • 複数名での使用を想定

以上が今回作りたいものになります。

今回使用するNFCリーダのモジュールについて

今回使用するNFCリーダはAmzonなどで購入することができる格安モジュールのMFRC-522 RC522 RFIDになります。ここにAmazonのリンクを貼っておきます。

これはとてもお手軽に購入することができるので、チャレンジがしやすいと思います!また、別の方法としてPaSoRi RC-S380を使用する方法もありますが、今回は格安モジュールで作成をしたいと思います。

※格安モジュールでははんだ付けが必要となるので、ご注意いただけたらと思います。

Qiitaの方に別のNFCリーダの記事もあったので、共有します!

https://qiita.com/pf_packet/items/9a50d9f3b1f478930b02

通知方法

通知方法はLINEのAPIを使います。LINEのAPIには「LINENotify」と「LINEMassaging API」がありますが、今回は「Massaging API」を使ってみたいと思います。MassagingAPIはLINENotifyに比べると扱うのが難しいですが、その分できることもたくさんあるので、使いこなせる日が来たら良いなと思います。今回はメッセージを送信するだけなので、LINENotifyでも代用ができます。なので、LINENotifyを使う場合にはアレンジして使っていただけたらとおもいます。 

LINENotify公式サイトはこちら

LINE MessagingAPI公式サイトはこちら

まとめ

今回はこれから作成する作品についてのシステム要件と使用するモジュール、使用するAPIサービスを紹介しました。次回以降からは作成したコードから少しずつ解説も混ぜつつできたらなと思います。また別でLINENotifyは扱いたいなと考えています。

今回はこれで終わります。