C#からLINEに通知する(LINE Notify)
目次
はじめに
こんにちは、のんびりエンジニアのたっつーです。
Twitter(@kingyo222)で Unity情報 を発信しているのでよければフォローしてください!
タイトルの通りです、C# から LINE にメッセージを通知できる仕組み(LINE Notify)を使ってみたいと思います。
↓のような事が出来ます。
LINE Notifyとは?
簡単に言うと、プログラム言語を用いてLINEに通知を行うことができます。
以下、公式の説明になります。
Webサービスからの通知をLINEで受信
https://notify-bot.line.me/ja/
Webサービスと連携すると、LINEが提供する公式アカウント”LINE Notify”から通知が届きます。複数のサービスと連携でき、グループでも通知を受信することが可能です。
ちなみに、公式では以下サポートしており、このサービス(Github、IFTTT、Mackerel)を使えばノンプログラミングでサービスの連携が行えます。
今回は C# からLINE Notify を使って、LINEに通知するのがテーマですので上記サービスは使わないのであしからず。
余談ですが、Gmailの重要なメールをLINEに通知しないなと思い、IFTTTを使ってみたのですが、2019年3月からGmail連携が無効になったみたいでできませんでした。
そこで、Zapairを使ってGmail → LINE の通知を行ったので以下記事にてご紹介もできればと思います。
LINE の設定
LINE Notifyトークンの発行
まず最初に、LINE Notiy に登録を行いましょう。
(登録手順は割愛いたします)
次に以下マイページに移動してください。
https://notify-bot.line.me/my/
アクセストークンの発行を行ってください。
トークン発行画面が表示されるので、以下情報を入力して、トークンを発行してください。
- トークン名:適当につけましょう
- トークルームの選択:LINE Notifyはグループ トーク にのみ通知が行えます、適当なグループが無ければ1人グループなどを作成して使いましょう
トークンが発行されました。
英数字の文字列が表示されるのでコピーしておきましょう。
※ここのトークンは一度しか表示できないので忘れないでください。
LINE Notifyをグループトークに招待
次に、「LINE Notify」ユーザをグループトークに招待します。
以下の画像のグループを作成しました、ここに「LINE Notify」ユーザを追加しましょう。「LINE Notify」ユーザが追加されると以下のように参加メッセージが表示されます。
C# から LINE に通知する
ソースコード
それでは、プログラミング言語(C#)から LINE Notifyに通知を行ってみましょう。今回はここのソースコードをお借りしました!
ACCESS_TOKEN の値を上記取得した文字列に置換してご使用ください!
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
namespace LineNotyfyTest
{
class Program
{
static void Main(string[] args)
{
PublishMessage("Hello World!");
Console.ReadKey();
}
private static async void PublishMessage(string message)
{
// 発行したアクセストークン
var ACCESS_TOKEN = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
using (var client = new HttpClient())
{
// 通知するメッセージ
var content = new FormUrlEncodedContent(new Dictionary<string, string> { { "message", message } });
// ヘッダーにアクセストークンを追加
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", ACCESS_TOKEN);
// 実行
var result = await client.PostAsync("https://notify-api.line.me/api/notify", content);
}
}
}
}
実行結果
どうでしょうか、以下のように表示されれば設定完了です。
トークン名に設定した名前が、画面の表示につかわれるみたいなので、仮想キャラクター名を定義すると、秘書的な感じで通知してくれるような事ができて楽しそうですね。
よければ、SNSにシェアをお願いします!