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でできる,つまりスマホで手軽にできる,ということを主張しておしまいにします。各種応用についてはまた書きます。それでは。