LoginSignup
9
6

More than 1 year has passed since last update.

40 代おっさんGAS使ってLINE Botで値を送ってみる!

Posted at

本記事ついて

本記事は プログラミング初学者の私が学習していく中でわからない単語や概要をなるべくわかりやすい様にまとめたものです。
もし誤りなどありましたらコメントにてお知らせいただけるとありがたいです。

今回の目標

・GASを使ってLINEに特定の値を送ってみる。

準備

Bot用のチャンネルを作成

LINE Develogersにログイン

https://developers.line.biz/ja/

LIEN.PNG

Messsaging API(赤枠)をクリック

画面遷移するので
「今すぐはじめよう」をクリックしてみてください

次は
LINEアカウントでログインをしてください

プロバイダー作成になるので

項目 入力内容
チャンネルの種類 LINE Messaging API
プロバイダー 任意の名前で(テストにしました)
会社・事業者の所在地 日本
チャンネル名 任意の名前で(テストにしました)
|チャンネル説明 LINE botのテスト
大業種 ウェブサービス
小業種 ウェブサービス(その他)

あとは利用規約にレ点を入れてください

作成をクリック

あとは同意してクリックしてください。

プロバイダー作成できたと思います。

チャンネルアクセストークンのコピー

コンソール(ホーム)の画面に遷移しますので

そこからMesssaging APIのタブをクリック

Messsaging API.の設定PNG.PNG

下のほうを見ると

チャンネルアクセストークンと言う場所があり
そこに発行というボタンがあるのでクリック(赤枠)

サクセストークン.PNG

発行ができましたらそれをコピーしてメモ帳でもよいので張っておいてください。
後で使います。

自動応答をオフに

QRコードがあったと思います。
そうすると
テストを友達追加してください。
開くと

LINEあいさつ.PNG

とメッセージがでたと思います。
この設定をオフにしたいと思うので

アクセストークン2.png

赤字の所を無効にしたいので、横にある編集をクリック

応答設定.PNG

こちらのあいさつ・応答メッセージのところをオフに(赤枠)

ユーザーIDをコピー

コンソール(ホーム画面)に戻って
チャンネル基本設定のタブをクリック
下のほうにある
あなたのユーザーIDをコピーしてメモ帳にでも貼り付けしてください。

IDあなたの.PNG
これで準備はできました。

実践

まずは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に送りたいと思います。

スプレッドシートにデータを入れる

スプレッドシート.PNG

コードを記入

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);
}

結果は

LINEみかん.PNG

このように
const bodyText = ${date}利樹は${mikan}が大好きです;

${mikan}でスプレッドシートからみかんを取ってきているのがわかります。

参考資料

https://www.amazon.co.jp/%E8%A9%B3%E8%A7%A3-Google-Apps-Script%E5%AE%8C%E5%85%A8%E5%85%A5%E9%96%80-%E7%AC%AC3%E7%89%88/dp/4798064742

https://qiita.com/ymd65536/items/f352632aad904bd02b1c

https://qiita.com/jun_higuche/items/0cfaa9f7466ba6bed469#2line-developers%E3%81%AB%E3%83%AD%E3%82%B0%E3%82%A4%E3%83%B3%E3%81%97%E3%81%A6bot%E7%94%A8%E3%81%AE%E3%83%81%E3%83%A3%E3%83%8D%E3%83%AB%E3%82%92%E4%BD%9C%E6%88%90

9
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
6