おはやし日記

テーマ……バイク←プログラミング←旅

AutomateでHTTPリクエスト

Automateのブロック,HTTP requestで,その名の通りHTTPリクエストを送信する方法をまとめます。HTTPリクエストの詳細については省きます。僕もちゃんと理解しているわけではないので。

ブロック概要

HTTP requestブロックは,ブロック選択画面のCONNECTIVITYタブの中にあります。詳しくは公式ドキュメントで。

引数

INPUT ARGUMENTSについて,(わかる範囲で)説明していきます。

変数名 説明
Request URL HTTPリクエストを送るURL
Request Method リクエストのメソッド(デフォルトはGET)
Request Content Type 以下のRequest ContentのMIMEタイプを選択
Request Content リクエストの中身。TextもしくはDictonaryとのことだが,Dictionaryでやったことがない
Basic Authorization Account 選択するとAccount Name Username Passwordの入力欄が出てくるが使ったことはない
Request Headers 使ったことないしわからん
Network Interface (Android 5+) 使用するネットワークの種類。デフォルトでは,現在接続しているものを使ってくれる。下手にWi-Fiに固定したりすると,Wi-Fiが切れた時は動かなくなるので注意
Certificate わからん
Redirect わからん
Save Response HTTPレスポンスの取り扱い。保存しないか,text変数として保存するか,ファイルに書き込むか。
Path ↑でファイルに書き込むと指定した際のディレクト

出力変数

OUTPUT VARIABLESについて

変数名 説明
Response status code レスポンスのstatus code(成功だったら200,とか)を格納する変数
Response content or filename レスポンスの本体を格納するtext変数,もしくはファイルパス
Response headers dictionary ヘッダを入れるDictionary変数。使ったことはない

動作(Foursquare APIを用いて)

HTTPリクエストでFoursquare APIを使うのは過去にやりました。

その時のリクエストをAutomateのHTTPrequestブロックに乗せてみようと思います。

送信するリクエストは

  • 東京タワー(35.6586,139.7454)周辺のスポットを認証なしで5つ検索
curl "https://api.foursquare.com/v2/venues/search\
?client_id=CLIENT_ID\
&client_secret=CLIENT_SECRET\
&v=20180323\
&ll=35.6586,139.7454\
&limit=5\
&locale=ja"

これをHTTPrequestブロックに入れるとすると

text = "client_id=CLIENT_ID&client_secret=CLIENT_SECRET&v=20180323&ll=35.6586,139.7454&limit=5&locale=ja"

として,ブロック内で

{引数}
Request URL = "https://api.foursquare.com/v2/venues/search"
Request Method = GETを選択
Request Content Type = Web formを選択
Request Content = text
Save Response = Save to variable as textを選択
{出力変数}
Response content or filename = response 

とします。適当にFlowを組んでHTTPrequestブロックの実行させるとHTTPリクエストが送信され,変数responseにレスポンスが格納されます。ここで示したのと同様のレスポンス(未整形)が入ります。Dialog messageブロックなどを使って表示することができます。また,レスポンスを整形したりなんやらして扱うこともできます。その話はまた別にします。

まとめ

とりあえずHTTPレスポンスをAutomateでできる,つまりスマホで手軽にできる,ということを主張しておしまいにします。各種応用についてはまた書きます。それでは。

にほんブログ村 IT技術ブログ IT技術メモへ

プライバシーポリシー ・お問い合わせはこちら