本記事ついて
本記事は プログラミング初学者の私が学習していく中でわからない単語や概要をなるべくわかりやすい様にまとめたものです。
もし誤りなどありましたらコメントにてお知らせいただけるとありがたいです。
今回の目標
・GASを使ってLINEに特定の値を送ってみる。
準備
Bot用のチャンネルを作成
LINE Develogersにログイン
https://developers.line.biz/ja/
Messsaging API(赤枠)をクリック
画面遷移するので
「今すぐはじめよう」をクリックしてみてください
次は
LINEアカウントでログインをしてください
プロバイダー作成になるので
項目 | 入力内容 |
---|---|
チャンネルの種類 | LINE Messaging API |
プロバイダー | 任意の名前で(テストにしました) |
会社・事業者の所在地 | 日本 |
チャンネル名 | 任意の名前で(テストにしました) |
|チャンネル説明 | LINE botのテスト |
大業種 | ウェブサービス |
小業種 | ウェブサービス(その他) |
あとは利用規約にレ点を入れてください
作成をクリック
あとは同意してクリックしてください。
プロバイダー作成できたと思います。
チャンネルアクセストークンのコピー
コンソール(ホーム)の画面に遷移しますので
そこからMesssaging APIのタブをクリック
下のほうを見ると
チャンネルアクセストークンと言う場所があり
そこに発行というボタンがあるのでクリック(赤枠)
発行ができましたらそれをコピーしてメモ帳でもよいので張っておいてください。
後で使います。
自動応答をオフに
QRコードがあったと思います。
そうすると
テストを友達追加してください。
開くと
とメッセージがでたと思います。
この設定をオフにしたいと思うので
赤字の所を無効にしたいので、横にある編集をクリック
こちらのあいさつ・応答メッセージのところをオフに(赤枠)
ユーザーIDをコピー
コンソール(ホーム画面)に戻って
チャンネル基本設定のタブをクリック
下のほうにある
あなたのユーザーIDをコピーしてメモ帳にでも貼り付けしてください。
実践
まずはLINEに何か文集と時間を送りたいと思います。
[チャネルアクセストークン]に先ほどコピーしたトークンを
[ユーザーID]も同様にコピーしたものを
// LINE Message API チャネルアクセストークン
const ACCESS_TOKEN = '[チャネルアクセストークン]';
//ユーザーIDを指定
const USER_ID = '[ユーザーID]';
// 通知用のLINE API
const PUSH = 'https://api.line.me/v2/bot/message/push';
/**
* push
* botからメッセージを送る
*/
function push() {
const date = Utilities.formatDate(new Date(), 'Asia/Tokyo', 'yyyy/MM/dd HH:mm');
// リクエストヘッダ
const headers = {
'Content-Type' : 'application/json; charset=UTF-8',
'Authorization' : 'Bearer ' + ACCESS_TOKEN //"Bearer "にスペースありこれがないと動かない
};
// メッセージ
const postData = {
'to': USER_ID,
'messages' : [
{
'type' : 'text',
'text' : `${date}利樹がかわいい~~1時間以上かけて飯食った><早く食べてよ~~`
}
]
};
// POSTオプション作成
const options = {
'method' : 'POST',
'headers' : headers,
'payload' : JSON.stringify(postData)
};
return UrlFetchApp.fetch(PUSH, options);
}
*"Bearer "にスペースありこれがないと動かないのところでかなりハマったので注意~
JSONをしっかり学んでいないのが分かるところですよね><
では実行ボタンを押してください。
そうするとLINEに文章が遅れたはずです。
せっかくなのでスプレッドシートから文章を送る
スプレッドシートから値をLINEに送りたいと思います。
スプレッドシートにデータを入れる
コードを記入
const File = SpreadsheetApp.openById('[GoogleスプレッドシートのID]');
これでスプレッドシートを取得
const baseSheet = File.getSheetByName('シート1');
これでシートを取得
const mikan = baseSheet.getRange('B3').getValue();
これでセルから値を取得しています。
// LINE Message API チャネルアクセストークン
const ACCESS_TOKEN = '[チャネルアクセストークン]';
//ユーザーIDを指定
const USER_ID = '[ユーザーID]';
// 通知用のLINE API
const PUSH = 'https://api.line.me/v2/bot/message/push';
// GoogleスプレッドシートをID取得
const File = SpreadsheetApp.openById('[GoogleスプレッドシートのID]');
//シートをシート名で取得
const baseSheet = File.getSheetByName('シート1');
/**
* push
* botからメッセージを送る
*/
function push() {
const date = Utilities.formatDate(new Date(), 'Asia/Tokyo', 'yyyy/MM/dd HH:mm');
//セルのB3の値(みかん)を取得
const mikan = baseSheet.getRange('B3').getValue();
const bodyText = `${date}利樹は${mikan}が大好きです`;
// リクエストヘッダ
const headers = {
'Content-Type' : 'application/json; charset=UTF-8',
'Authorization' : 'Bearer ' + ACCESS_TOKEN //"Bearer "にスペースありこれがないと動かない
};
// メッセージ
const postData = {
'to': USER_ID,
'messages' : [
{
'type' : 'text',
'text' : bodyText
}
]
};
// POSTオプション作成
const options = {
'method' : 'POST',
'headers' : headers,
'payload' : JSON.stringify(postData)
};
return UrlFetchApp.fetch(PUSH, options);
}
結果は
このように
const bodyText = ${date}利樹は${mikan}が大好きです
;
${mikan}でスプレッドシートからみかんを取ってきているのがわかります。