Ziyasumin01
@Ziyasumin01

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

GASを使用したLINEBOTお天気通知作成 構文エラー  

Q&A

Closed

解決したいこと

GASを使ってLINEBOTのお天気通知を作りたいと思っています。
そこで、GASのエディタにコードを入力しましたが、LINEのチャンネルアクセストークンを記入すると下記のようなエラーがでます。
チャンネルアクセストークンを入力する際、何か注意点とかありますか?

3行目がエラー対象かと思っています。
この記事にはアクセストークンは記載していませんが、取得して記載をしたときにこのエラーが出ました。
解決方法、どうか教えてください。よろしくお願いいたします。

発生している問題・エラー

構文エラー: SyntaxError: Unexpected token '/' 行: 3 ファイル: コード.gs

image.png

該当するソースコード

function myFunction() {
  // LINE Message API チャネルアクセストークン
const LINE_ACCESS_TOKEN = { LINE_ACCESS_TOKEN };
//ユーザーIDを指定
const LINE_USER_ID = { LINE_USER_ID };
// 通知用のLINE API
const PUSH_API = "https://api.line.me/v2/bot/message/push";

const WEATHER_APP_ID = { WEATHER_APP_ID };
const LAT = 0;
const LON = 0;
// 天気予報情報取得API;
const WEWATHER_API = `https://api.openweathermap.org/data/2.5/onecall?lat=${LAT}&lon=${LON}&units=metric&lang=ja&appid=${WEATHER_APP_ID}`

/** 
 * push
 * botからメッセージを送る
 */
function doPost() {

  const date = Utilities.formatDate(new Date(), 'Asia/Tokyo', 'yyyy/MM/dd HH:mm');

  // リクエストヘッダ
  const headers = {
    "Content-Type" : "application/json; charset=UTF-8",
    "Authorization" : "Bearer " + LINE_ACCESS_TOKEN
  };
  // メッセージ
  let weatherInfo = getWeather();
  const postData = {
    "to" : LINE_USER_ID, 
    "messages" : [
      {
        "type" : "text",
        "text" : `時刻: ${ weatherInfo.datetime }, 天気: ${ weatherInfo.weather }, 気温: ${ weatherInfo.temp }, 湿度: ${ weatherInfo.humidity }`
      }
    ]
  };

  // POSTオプション作成
  const options = {
    "method" : "POST",
    "headers" : headers,
    "payload" : JSON.stringify(postData)
  };
  return UrlFetchApp.fetch(PUSH_API, options);
}


function unixtimeToDatetime(unixtime) {
  const date = new Date(unixtime * 1000);
  return Utilities.formatDate(date, 'Asia/Tokyo', 'YY/MM/dd HH:mm');
}

function getWeather() {
  // @ts-ignore
  let res = JSON.parse(UrlFetchApp.fetch(WEWATHER_API));
  let current = res.current;

  let unixtime = unixtimeToDatetime(Number(current.dt));

  weatherInfo = {
    "datetime": unixtime,
    "weather": current.weather[0].description,
    "icon": current.weather[0].icon,
    "temp": Math.round(current.temp),
    "humidity": current.humidity
  };
  return weatherInfo;
}
}

自分で試したこと

アクセストークンの記入が間違っているのか、カッコの対応関係がおかしいのか基本を理解していないため何が間違っているのかが全くわかりません。
どうぞお力をお貸しください。。。
よろしくお願いいたします。

0

1Answer

実際のどのようなコードなのかわかりませんが、もし

const LINE_ACCESS_TOKEN = { aaa/bbb/ccc };

のようにしているのであれば、それは構文エラーですから

const LINE_ACCESS_TOKEN = 'aaa/bbb/ccc';

と直せば済むかなと思います。

1Like

Comments

  1. @Ziyasumin01

    Questioner

    @itagagakiさま
    ありがとうございます!!
    解決しました。早急かつご丁寧にありがとうございました。

Your answer might help someone💌