2018年11月11日こんにちは、最近プログラミングの案件をとろうと躍起になっているYuiです。アホYui何かお仕事あれば案件ほしいんだなあ・・おしゃべりマンまずは実力をつけろよはい、おしゃべりマンの言う通りですね。これに関しては私が頑張るのみなので、引き続き勉強します。Script(以下GAS)の機能について説明したいと思います。前回のGASでのLineBotの作り方の記事で使ったコードを解説しながら進めていきます。合わせて読みたい10分でできるGASでのLineBotの作り方Contentsコードの意味を理解しようGASでのAPIの導入方法GASのオブジェクトを使いこなそう(応用編)コードの意味を理解しようまずは前回書いた繰り返しLineBotのコードの意味を理解しましょう。下記のようなコードを書きました。APIは、POSTメソッドでデータを送ってくるのでdoGetではなくdoPostを使います。その中に実際の動きとなるコードを書いてあげるのですが、LineBotが実際に働くまでの流れをまとめると、下記のようになります。1、ユーザーからのメッセージを取得2、そのメッセージをJSONでパースして変数userMessageを宣言3、応答用のトークンをJSONでパースして変数reply_tokenを宣言4、LineBotを動かすためのAPIに対応したURLを変数line_urlとして宣言5、LineBotAPIの動く範囲の中でコードを書いて実装する今回はJavaScriptで書いてあることもあって、JSONを利用してデータの受け渡しをしてあげているというわけです。GASでのAPIの導入方法さて、次に気になるのが4のAPIの導入方法ですね。どこでAPIを導入させてあげているのでしょうか。GASではAPIの導入のためにgemfileをいじる必要はありません。各APIに対応したURLを定義してあげて、それをコードの中に組み入れてあげれば簡単に実装できます!これはどういうことかというと、上記コードの中のこの部分でAPIを定義してあげています。‘https://api.line.me/v2/bot/message/reply’;そしてどこで使っているのかというと、ここです。{これがまさにGASの便利なところなのですが、GASでは外部のサイトにアクセスする処理として「UrlFetchApp」というオブジェクトが用意されています。することで、普通は外部のWebサイト(今回だとAPI)から情報を得る場合、まずはダウンロードをして、そのデータにアクセスする処理を書かなければいけませんが、GASではその必要はありません。このオブジェクトはいろいろな使い方があるのですが、今回はfetchというメソッドを呼び出して、LineMessagingAPIにアクセスしてあげています。UrlFetchApp.fetch(URL)この引数に、アクセス先となるURLを指定するだけで、そこにアクセスしてサーバーからデータを取り出すことができる。実はそのあとの見慣れない’headers’や’method’なども、GAS側で用意してくれている便利な機能を使ってあげているんですね。GASのオブジェクトを使いこなそう(応用編)先ほど、UrlFetchApp.fetch(URL)でアクセス先を指定するだけで簡単に外部のサイトにアクセスできると書きましたが、実はさらに便利な機能があるのです。じつは第2引数に必要な情報をオプションとして用意することができるんです。ここにオプション)オプションを指定してあげることで、外部サイトにアクセスする際の動きをより細かく指定することができます。具体的に見ていきましょう。userMessage,}],}),});まず、今回のように外部のAPIにアクセスする際は、情報をヘッダ情報として送り、サーバーとやり取りをすることが必要です。(これが‘headers’部分)そのために必要な情報を連想配列としてまとめた上で、‘Content-Type’のところではJSONを使うことを宣言して、文字化けしないようにUTF-8に指定しています。実はまだアクセストークンを認証させていませんでした(最初のvar~~の部分では、変数として定義しただけ)ので、‘Authorization’の部分で認証させてあげています。JSONに変換する必要があるので、ここではJSON.stringifyメソッドを使っています。ここにオプション)で簡単に外部のURLにアクセスして、さらにオプションを指定することで、どのようにアクセスしたいかを指定することが出来る。・GASのオプションを使うとより簡単にコードを書ける。旅のプロ×行動力おばけYuiフットワークがひたすら軽いYuiです!単語わからないという語学力ゼロの状態からドイツに留学し、1ヶ月後には独英を取得、語学力を活かして独英間の通訳や翻訳をボランティアで行う。その後、20万程度で約40ヶ国をカバン1つで世界一周。自由に生きるために現在プログラミングをもう勉強中。作ったもの:LineBot【おしゃべりマン】(下のLineマークから登録できます。