【鈍器!?】LINEAPIが詰まりまくった、LINEAPI実践ガイドを読んでみた！


## LINEAPI実践ガイドとは？
<img src="https://images-na.ssl-images-amazon.com/images/I/41-Z9Iw9wkL._SX353_BO1,204,203,200_.jpg">



>LINE APIに対する深い理解や高い技術力があり、コミュニティに影響力を持つエンジニアとしてLINE株式会社が認定した「LINE API Expert」および「LINE Developer Community」の有志メンバーにより執筆された書籍であり、LINEAPIでできることが事細かく書かれていたり、実装に関する知見が豊富に書かれている本。

[amazonで購入する]
(https://www.amazon.co.jp/dp/4839973768/ref=cm_sw_r_tw_dp_x_Al8SFbSP8BSV)※アフィリとかじゃないよ。

ということで、LINEAPIに関して専門的な知識と技術を持っておられるLINEAPIExpertのみなさんが書かれた最新の知見が詰まりまくった本を読んでみました。
## この記事の対象者
・LINEAPIを使ったプロダクトを開発している方
・これからLINEAPIを使った事例が知りたい方
・LINEAPIの応用事例や開発知見が欲しい方

## おことわり
本記事は[こちらのイベント](https://linedevelopercommunity.connpass.com/event/189889/)で抽選配布に当選し、景品としていただいた物を読んだレビュー記事です。
また、本記事の著者はLINEAPIをある程度理解しており、全くの初心者ではないことをご理解ください。ツイートを主にまとめながら書き進めていきます。
<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">今話題の物を手に入れたので記事書きます!! <a href="https://t.co/kluY4Uze3M">https://t.co/kluY4Uze3M</a> <a href="https://t.co/w841OzHATC">pic.twitter.com/w841OzHATC</a></p>&mdash; ようかん / Yosuke Inoue (@inoue2002) <a href="https://twitter.com/inoue2002/status/1324656368301666306?ref_src=twsrc%5Etfw">November 6, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>


#第1章
>はじめてのLINEAPI
- さまざまなLINEのAPIを体験する

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">第1章ではclovaのスキル実装を行うのかと思えば、linebot、FlexMessage、リッチメニュー&amp;リッチメニュー切り替えなどなどいきなりてんこ盛りの内容だった。 <a href="https://twitter.com/hashtag/line%E5%AE%9F%E8%B7%B5%E3%82%AC%E3%82%A4%E3%83%89?src=hash&amp;ref_src=twsrc%5Etfw">#line実践ガイド</a></p>&mdash; ようかん / Yosuke Inoue (@inoue2002) <a href="https://twitter.com/inoue2002/status/1324660349191114752?ref_src=twsrc%5Etfw">November 6, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

### 読んだ感想
LINEAPI未経験者を対象にAPIの紹介や実際に手を動かしながらLINEAPIを試せる構成となっていました。しかしこれが本気で試せるようになっていて、第一章だけでLINEBot/CLOVA/LIFF/LINEPayまでもを体験することができます。
あえて本文の実装については触れませんが、本当に一章だけで一気にAPIに関する理解が深まると思います。
flexメッセージやLIFFについての説明も詳しく書かれていました。

####　リッチメニューを簡単に設定する（個人的おすすめ）
・[リッチメニューマネージャー](https://github.com/kenakamu/line-richmenus-manager/blob/master/README_ja.md)
・[リッチメニューエディタ](https://richmenu.app.e-chan.cf/)
リッチメニュー を自前で実装しようとすると、何度もAPIを叩く必要がありますが、これらのツールを利用することで簡単に実装することができます。


#第2章
>LINEログイン
- AWS Lambdaを使ったLINEログインの実装

ここからは高校三年生の(@shinbunbun_)のターン♪

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">第2章ではLINEログインの実装。<br>もちろん著者は<a href="https://twitter.com/shinbunbun_?ref_src=twsrc%5Etfw">@shinbunbun_</a> 先生<br><br>個人的には新しいs3の使い方を見つけられた。<br><br>LINEログインのガチガチな実装はしたことないから知らなかったけど、申請すればメールアドレスも取得可能<br><br> <a href="https://twitter.com/hashtag/line%E5%AE%9F%E8%B7%B5%E3%82%AC%E3%82%A4%E3%83%89?src=hash&amp;ref_src=twsrc%5Etfw">#line実践ガイド</a></p>&mdash; ようかん / Yosuke Inoue (@inoue2002) <a href="https://twitter.com/inoue2002/status/1324666339374428160?ref_src=twsrc%5Etfw">November 6, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

### 読んだ感想
この章はお友達の@shinbunbun_が書いたAWSを使ってLINEログインを実装する章です。
様々なWebサービスを展開していく中で、アカウント登録というのはユーザーの離脱率を大きくあげるポイントとなってしまいます。沢山のユーザーがいる、LINEログインをサービスに実装することによって、気軽にサービスを利用することができます。ソースコードの解説も丁寧に書かれていますし、自分で手を動かしながら、試せるのはとても勉強になりますし、おすすめです。


#第3章
>LINEBot
- Microsoft Bot Framework Composerでローコード開発

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">第3章<br>自然言語処理だったりがサクッとできるみたいで思いついたbotをさささぁっと実装できそうな気がします<br> <a href="https://twitter.com/hashtag/line%E5%AE%9F%E8%B7%B5%E3%82%AC%E3%82%A4%E3%83%89?src=hash&amp;ref_src=twsrc%5Etfw">#line実践ガイド</a></p>&mdash; ようかん / Yosuke Inoue (@inoue2002) <a href="https://twitter.com/inoue2002/status/1324673400925638656?ref_src=twsrc%5Etfw">November 6, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

### 読んだ感想
この章で取り上げられている、[Microsoft Bot Framework](https://dev.botframework.com/)は、C#やNodejs,Python,Javaなど幅広いSDKが用意されており、高度なボット開発ができます。さらに、[Bot Framework Composer](https://docs.microsoft.com/ja-jp/composer/)を使うことでほぼGUIだけで品質の高いボットを開発することができるという、誰もが活用できるサービスです。

この開発を行うには多少なりのgitコマンドなどは利用しなければなりません。しかし、全てのツールのインストールやAzureのアカウント作成の手順から紹介が始まります。コマンドも、専門知識も特にわからなくても本を読み進めるだけで、自分だけどBot開発を行うことができます。何か今直ぐにでも作りたいBotがある方にはおすすめかもしれません。
応答処理を全てGUIで開発することができるので、プログラミングをしたことがない方でも学習コストを押さえながら開発することができます。
また、このサービスで開発したBotはSlackやMicrosoft Teams,Skype,Facebook Messengerなどにも連携することができます。連携する際の形式は異なりますが、全てAzure内でよしなにやってくれるので一度作ってしまえば応用の幅も一気に広がると思います。
特にチャットボットなどは求められるシーンが様々なだけに、いろいろなサービスと連携できるというのはとても便利だと思います。

そして章の最後にはLINEbotのメッセージをテキストから写真に変えてみたり、スタンプに変えてみたりと、応用を学ぶことができます。他にも、ユーザーが送ってきた画像に対してどのような処理を行うのかといったことなどにも言及されており、LINEAPIの応答に関するヒントが盛り沢山です。

#第4章
>LIFF(LINE Front-end Framework)
- JavaScriptとC#で作るTodoアプリケーション

### 読んだ感想
この章ではC#でSPA開発ができるblazor webassemblyを利用し、LIFFアプリケーションを開発する章です。と思いきや、同じアプリをJavaScriptでも実装をしてみたという二本立てになっています。
それぞれフロントエンドもバックエンドも作り方が詳細に書かれており、非常にわかりやすい説明がされています。こちらの章はプログラミング初心者の方向けというよりは、ある程度の開発経験がある方向けといった内容です。
LIFFアプリケーション開発は今後どんどん盛り上がっていくであろうミニアプリの準備段階でもありますので、興味ある方は是非この章を読み、LIFFの知識を深める事をおすすめします。
LIFFやミニアプリに関しては[デベロッパーグループ](https://linedevelopercommunity.connpass.com/)で沢山イベントも開催されておりますので合わせてご覧ください。

とても個人的な感想ですが、LIFFアプリは毎月のペースで大きなアップデートが現在進行形で行われています。実際に本日も興味深いアップデートが公開されました。

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">今日リリースされたシェアターゲットピッカーのアプデは個人的にはアツイ<br><br>出た当初から送信先を探すのがめんどくさかったのでありがたい<br><br>＞送信先がアルファベット順から履歴順に変わりました<a href="https://t.co/rGZ6V7g3vC">https://t.co/rGZ6V7g3vC</a></p>&mdash; ようかん / Yosuke Inoue (@inoue2002) <a href="https://twitter.com/inoue2002/status/1333729320834002945?ref_src=twsrc%5Etfw">December 1, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

先日行われた[LINEDEVDAY2020](https://linedevday.linecorp.com/2020/ja)のLIFFに関わるセッションでもv3に向けて開発が行われているとの事でしたので今後の進化から目が離せませんね。

#第5章
>LINECLOVA
- Azure functionsおよびTypeScript✖︎VS CodeによるCLOVAスキル開発

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">第5章は1章よりもより踏み込んだclovaの開発基本と応用をAzure Functionsで開発していく。<br> <a href="https://twitter.com/hashtag/line%E5%AE%9F%E8%B7%B5%E3%82%AC%E3%82%A4%E3%83%89?src=hash&amp;ref_src=twsrc%5Etfw">#line実践ガイド</a></p>&mdash; ようかん / Yosuke Inoue (@inoue2002) <a href="https://twitter.com/inoue2002/status/1324706420994973699?ref_src=twsrc%5Etfw">November 6, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

### 読んだ感想
この章は本当に知見の塊の章です。記事の内容はAzure functionsとC#で開発するCLOVAスキルの実装方法について書かれています。最後の方にはJSやTSでの実装方法についても書かれていますので、幅広い方が楽しめる内容になっています。この章では前述のCLOVAが登場する章よりもさらに細かく開発に使うメゾットであったり、専門用語であったりの説明が書かれています。CLOVAについて深い知見を求めている方には是非読んでいただきたい内容です。
また、個人的にとても面白かったのは「無限ループ」について言及されている事です。これは特に公式ドキュメントに書かれている訳でもなく、思いっきりハックした内容だと個人的に思っています。これを応用する事でスキルを対話としての応答ではなく、待機状態にし、好きなだけ喋らせるというのはとても興味深かったです。
「無限ループ」に関して、著者の[@himarin269](https://twitter.com/himarin269)さんに直接聞いてみました↓<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">ぜひ！<br>無音無限ループ使うとCLOVAデバイスが待機状態になって、任意のタイミングで外から命令し放題になるので、いろんなことに使えます（Beacon組み合わせたりも楽しそう）</p>&mdash; ひらりん (Takumasa Hirabayashi) (@himarin269) <a href="https://twitter.com/himarin269/status/1324735359758995456?ref_src=twsrc%5Etfw">November 6, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
LINEAPIに関してはある程度の知見を持っていたはずでしたがこれに関しては私も初めて知りました。ただし、ストア公開するスキルには向いている実装とはとても言えないので注意が必要です。これぞ「実践ガイド」って気がしました。

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">5章 c#なので僕には読めないが、<br>clova開発においてつまりそうなところや、開発tipsがいたるところに書かれている。<br>「無限音源ループによるスキルの拡張」とか僕は聞いた事なかったが界隈では当たり前なのだろうか。<a href="https://twitter.com/hashtag/line%E5%AE%9F%E8%B7%B5%E3%82%AC%E3%82%A4%E3%83%89?src=hash&amp;ref_src=twsrc%5Etfw">#line実践ガイド</a></p>&mdash; ようかん / Yosuke Inoue (@inoue2002) <a href="https://twitter.com/inoue2002/status/1324706964031434754?ref_src=twsrc%5Etfw">November 6, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">5章　後半にはTypeScriptでの実装について言及されている。TypeScriptの軽い説明から入り、jsコードをtsコードに移植していく流れを学ぶことが出来ます。<a href="https://twitter.com/hashtag/line%E5%AE%9F%E8%B7%B5%E3%82%AC%E3%82%A4%E3%83%89?src=hash&amp;ref_src=twsrc%5Etfw">#line実践ガイド</a></p>&mdash; ようかん / Yosuke Inoue (@inoue2002) <a href="https://twitter.com/inoue2002/status/1324708096753557504?ref_src=twsrc%5Etfw">November 6, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>



<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">ストア公開への知見も書かれている。<br>とりあえず、触ったことのない初心者だけではなく、少し経験したことはあるものの、それほど知見が無い人にはとても有益な情報が多いと感じた。<a href="https://twitter.com/hashtag/line%E5%AE%9F%E8%B7%B5%E3%82%AC%E3%82%A4%E3%83%89?src=hash&amp;ref_src=twsrc%5Etfw">#line実践ガイド</a></p>&mdash; ようかん / Yosuke Inoue (@inoue2002) <a href="https://twitter.com/inoue2002/status/1324707392437673985?ref_src=twsrc%5Etfw">November 6, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
#第6章
>LINE Beacon
- M5AtomをLINE Beacon化しよう

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">6章はLINEBeaconについて。<br>まずはLINEBeaconの概要説明と活用事例を学ぶ。<br>そして、BeaconとLINEbotの実装に入るという流れ。<br> <a href="https://twitter.com/hashtag/line%E5%AE%9F%E8%B7%B5%E3%82%AC%E3%82%A4%E3%83%89?src=hash&amp;ref_src=twsrc%5Etfw">#line実践ガイド</a></p>&mdash; ようかん / Yosuke Inoue (@inoue2002) <a href="https://twitter.com/inoue2002/status/1324708878668345348?ref_src=twsrc%5Etfw">November 6, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

### 読んだ感想
LINEBeaconは実際に導入されている事例が身近にあると思います。具体的には「店内に入ると公式アカウントからクーポンが届いた」「近くに自動販売機があるよと通知がきた」「自販機とLINEでポイントが溜まった」などです。Beaconの範囲の中にいるユーザーに対してイベントを起こすことができます。以前までは、Beaconの範囲に入った時と出た時で２種類のイベントを取得することができたのですが、[2020年末で、範囲を出た時のイベントは廃止されます](https://developers.line.biz/ja/news/2020/11/25/reminder-deprecate-leave-event-for-beacon/)。

そんなBeaconとLINEbotを実際に連携してみる＆メッセージを送ってみるといった実装を試すことができる章となっています。私も以前Beaconの実装を行ったことがありますが、比較的簡単に実装することができるのでとてもおすすめです。
範囲に入ったかどうかは取得できますが、そのユーザーが具体的にどの位置にいるかまではわからないのは実装を行う前に知っておかなければいけない事項です。それを踏まえた上で、実際にBeaconの近くにこないとできない事を実装したい場合は是非参考にしてみるといいのかなと思います。
MacOS・WinOSどちらの方法も記述されているので誰がみてもわかりやすい章となっていました。

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">あ。この6章でNotifyの送信についても学べます　<a href="https://twitter.com/hashtag/line%E5%AE%9F%E8%B7%B5%E3%82%AC%E3%82%A4%E3%83%89?src=hash&amp;ref_src=twsrc%5Etfw">#line実践ガイド</a></p>&mdash; ようかん / Yosuke Inoue (@inoue2002) <a href="https://twitter.com/inoue2002/status/1324711959502057472?ref_src=twsrc%5Etfw">November 6, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
LINENotifyで通知を送る方法についても書かれています。

#第7章
>ハードウェア連携
- ペットのトイレ管理デバイスおよびLINEPay対応ドリンクバーの開発

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">最終章、7章はハードウェア連携。<br>LINEAPIを現実のものと連携するAPIの応用な感じがする。<a href="https://twitter.com/hashtag/line%E5%AE%9F%E8%B7%B5%E3%82%AC%E3%82%A4%E3%83%89?src=hash&amp;ref_src=twsrc%5Etfw">#line実践ガイド</a></p>&mdash; ようかん / Yosuke Inoue (@inoue2002) <a href="https://twitter.com/inoue2002/status/1324711104921051136?ref_src=twsrc%5Etfw">November 6, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">実際のプロダクトとして紹介されているため、とてもイメージがつきやすくわかりやすい。　 <a href="https://twitter.com/hashtag/line%E5%AE%9F%E8%B7%B5%E3%82%AC%E3%82%A4%E3%83%89?src=hash&amp;ref_src=twsrc%5Etfw">#line実践ガイド</a></p>&mdash; ようかん / Yosuke Inoue (@inoue2002) <a href="https://twitter.com/inoue2002/status/1324711342159269888?ref_src=twsrc%5Etfw">November 6, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>


<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">ちょうど、温度センサー＋ハードウェアで一つシステムを作らないといけないことになっていたのでとても参考になる。マイコンかってセンサーくっつけてUIFlowで条件下になったらNotifyを送るだけ。<a href="https://twitter.com/hashtag/line%E5%AE%9F%E8%B7%B5%E3%82%AC%E3%82%A4%E3%83%89?src=hash&amp;ref_src=twsrc%5Etfw">#line実践ガイド</a></p>&mdash; ようかん / Yosuke Inoue (@inoue2002) <a href="https://twitter.com/inoue2002/status/1324711877910278145?ref_src=twsrc%5Etfw">November 6, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

### 読んだ感想
この章はザ・事例という事で実際にLINEAPIを応用し、どのようなことができるのかといった事例をみるができます。
一つ目はIot✖︎LINEの事例で、センサーが反応したらLINEを送るといったことの実装事例をみることができます。
実際に家などに温度センサーや、モーター、カメラなどを置いて、それをLINEと連携するというのはとても活用の幅が広がると思います。また、ハードとセンサー類の開発は全てGUI(本書ではUIFlow)、ビジュアルプログラミングを用いた実装が紹介されており、プログラミングがよくわからない人でも、見よう見真似でブロックを積み上げることで開発することができます。
LINEとIoTを掛け合わせて何かをやってみたい方は是非参考にしてみる事をお勧めします。

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">後半は <a href="https://twitter.com/sumihiro3?ref_src=twsrc%5Etfw">@sumihiro3</a> さんのドリンクバーの章へ。<br>LINEPAYのアップデートにおける注意点などが詳しく書かれており、躓いている人にはもってこいかもしれない。<a href="https://twitter.com/hashtag/line%E5%AE%9F%E8%B7%B5%E3%82%AC%E3%82%A4%E3%83%89?src=hash&amp;ref_src=twsrc%5Etfw">#line実践ガイド</a></p>&mdash; ようかん / Yosuke Inoue (@inoue2002) <a href="https://twitter.com/inoue2002/status/1324712500948971521?ref_src=twsrc%5Etfw">November 6, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">このドリンクバー、今までの章に出てこなかったobnizやGCP、NuxtやGoogleAppEngineなど非常に興味深い技術で構成されている。<br>ハードウェアの実装からLINEBotの実装、LIFFの実装まで行った上でユーザーへのUX向上の工夫まで書かれたとても学びのある内容でした<br> <a href="https://twitter.com/hashtag/line%E5%AE%9F%E8%B7%B5%E3%82%AC%E3%82%A4%E3%83%89?src=hash&amp;ref_src=twsrc%5Etfw">#line実践ガイド</a></p>&mdash; ようかん / Yosuke Inoue (@inoue2002) <a href="https://twitter.com/inoue2002/status/1324713283178278915?ref_src=twsrc%5Etfw">November 6, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

二つ目の事例はLINEPAYとLINEBotとハードを掛け合わせたまたまた応用の事例です。著者である@sumihiro3が作られたLINEPAYドリンクバーの最新版の紹介がなされています。以前LTをされていた時の資料がごちら↓
https://speakerdeck.com/sumihiro3/line-clova-drink-bar-clova-sukirudedai-duo-ni-dorinkubawocao-zuo-suru


また、GCPの開発知見も豊富にあったのでとても参考になると思います。
<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">最後にはGitHub ActionsとGCPを使ったCDの仕方についても書かれている。これはGCPを使う時には参考にしよう。 <a href="https://twitter.com/hashtag/line%E5%AE%9F%E8%B7%B5%E3%82%AC%E3%82%A4%E3%83%89?src=hash&amp;ref_src=twsrc%5Etfw">#line実践ガイド</a></p>&mdash; ようかん / Yosuke Inoue (@inoue2002) <a href="https://twitter.com/inoue2002/status/1324713644312068096?ref_src=twsrc%5Etfw">November 6, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>


#まとめ

こんな感じでざっとLINEAPI実践ガイドに書かれている事をまとめる&私の感想を書いてみました。
少しお値段は高いものの、内容はそれ以上に濃縮された、とても読み応えのある一冊だなと思いました。
ただ、一つ思ったことは、「入門」ではなく「実践」だということです、"何も知らない"方向けに書かれている章ももちろんありましたが、"応用"や"開発tips"といったある程度開発経験のある人向けで書かれている章も多かったです。
それだけ幅広いみなさんに楽しんでもらえる一冊なのではないのかなと思いました。
LINEAPIを活用した知見が欲しい方、また、新たなプロダクトを考えておられる方は是非一度、近くの店頭もしくはamazonへ。電子書籍版も発売されていますので、そちらも合わせてご覧ください。

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">なにか実装につまづいているときにもお勧めの本<br>新しい技術やAPIに手を出したい時にお勧めの本<br>LINEAPI実装の新しいヒントが欲しい時にお勧めの本<a href="https://twitter.com/hashtag/line%E5%AE%9F%E8%B7%B5%E3%82%AC%E3%82%A4%E3%83%89?src=hash&amp;ref_src=twsrc%5Etfw">#line実践ガイド</a></p>&mdash; ようかん / Yosuke Inoue (@inoue2002) <a href="https://twitter.com/inoue2002/status/1324714766711939074?ref_src=twsrc%5Etfw">November 6, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

この記事はSGGアドベントカレンダー１日目の記事になります。