LoginSignup
1
2

More than 3 years have passed since last update.

Power AutomateでLINEに投稿された画像のbase64文字列を取得する

Posted at

Power Automateを使ってLINE Botに投稿された画像を取得して、
その画像をbase64文字列に変換するのに手こずったのでメモとして残します。

経緯

とある画像解析APIに画像を渡す際、受け付けてくれるフォーマットがbase64だった。

Power Automateで用意されているもの

既存の式にbase64のものが複数ありましたが、どれもbase64から変換するものばかりでした。

ほしいもの

バイナリ形式→base64にエンコードしてほしい!! と検索したものの情報が全くありませんでした。

情報取得

色々検索すると下記の情報に行き着きました。
内容は、自動的にbase64に変換されたものが返ってくるみたいです。

返ってくる形は以下のイメージ。この $content の中身がほしい!!

{
  "$content-type": "image/jpeg",
  "$content": "/9j/4AAQSkZJRgABAQAAAQABAAD/......"
}

$contentを取得

変数文字列にHTTPで取得した画像バイナリの中身を取得します。
LINEに投稿された画像は下記のように設定すればバイナリデータを取得することができます。

s100.png

項目
①名前変更 「LINE画像取得」に変更しました
②方法 GET
③URI https://api.line.me/v2/bot/message/@{items('Apply_to_each')?['message']?['id']}/content
④ヘッダー AuthorizationとBearerにLINEのアクセストークンを明記

変数base64というものを用意して、そこに渡します。

スクリーンショット 2020-10-14 18.12.35.png

値は下記の通り。途中にある LINE画像取得 はHTTPの名前を変えたので、ご自身の環境に合わせてください。
値にコピペすると反映されます。

@{body('LINE画像取得')?['$content']}

LINE画像取得の本文内にある $content を取得します。

まとめ

@{body....} の記述方法を見つけるのにとても苦労しました。
単純にbase64エンコードしてくれる式があればいいのにと思いました。

1
2
1

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
1
2