突然ですがMicrosoft FlowのTipsです。
うちの組織のTeamsはTwitterコネクタが無効になっているのですがIncoming Webhookは使えるので、Flowでツイートを拾ってWebhookでTeamsに投げるという事をしています。
その際、改行を含むツイートがTeamsの表示で改行にならない現象があったのでFlowで改行を<br />
に置換してやれば楽勝…と思いきや少しハマったので記事にしておきます。
はじめに
まずは普通にフローを組んでみます。
Twitterでこのように投稿すると...
Teamsでこのように表示されます。
フローの実行履歴を見てみるとツイートの改行は\n
で飛んでくるのが分かったので
replace関数で\n
を<br />
に置換してみます。
replace(triggerBody()?['TweetText'],'\n','<br />')
しかし、これでは望んだ結果が得られませんでした。
実行結果でHTTPでPOSTした内容を見てみると... \n
のままです。
何故かreplace関数では\n
を認識してくれません。
解決策
この問題は、uriComponentで\n
を%0A
に変換してから<br />
である%3Cbr%20%2F%3E
に置換してuriComponentToStringでもとに戻せば解決できます。
uriComponentToString(replace(uriComponent(triggerBody()?['TweetText']),'%0A','%3Cbr%20%2F%3E'))
めでたしめでたし。