IT仕事 PowerAutomate

PADからChatworkにPDFをファイル添付で送る

投稿日:

PADで、画像を添付ファイルでチャットワークに送る方法を調べたけど、見つからなかった。
代わりにPDFを送る方法は見つかったが、そのままのやり方ではうまくいかなかった。pdfとjpgで扱いが変わるのかな?

【Power Automate Desktop】ChatworkにPDFを自動アップロードする #PowerShell – Qiita

ChatGPTに相談したら、最初はフローで「テキストをバイナリに変換」しろだの、「バイナリを Base64 に変換する」だの、いろいろ注文されてその通りにフロー作成したが、うまくいかなかった。
だが最終的に、PADの「Webサービスを呼び出します」アクションを諦め、「PowerShell スクリプトの実行」アクションを使って、確実にJPGをそのまま無傷でチャットワークに送り届ける方法に変えましょう、となって、うまくいった。

以下を「PowerShell スクリプトの実行」アクションにコピペして必要箇所を書き換えるだけでOKと思うよ。

# --- 設定エリア(ここをご自身の環境に書き換えてください) ---
$token = "【あなたのAPIトークン】"
$roomId = "【あなたのルームID】"
$filePath = "【JPGファイルのフルパス(例 C:\Folder\image.jpg)】"
$message = "画像を添付します。"
# --------------------------------------------------------

# 送信処理(ここは書き換え不要です)
$URL = "https://api.chatwork.com/v2/rooms/$roomId/files"
$fileBytes = [System.IO.File]::ReadAllBytes($filePath)
$fileName = [System.IO.Path]::GetFileName($filePath)
$LF = "`n"
$boundary = [System.Guid]::NewGuid().ToString()

$bodyLines = (
    "--$boundary",
    "Content-Disposition: form-data; name=`"message`"",
    "",
    $message,
    "--$boundary",
    "Content-Disposition: form-data; name=`"file`"; filename=`"$fileName`"",
    "Content-Type: image/jpeg",
    ""
) -join $LF

$headerBytes = [System.Text.Encoding]::UTF8.GetBytes($bodyLines + $LF)
$footerBytes = [System.Text.Encoding]::UTF8.GetBytes($LF + "--$boundary--" + $LF)

$requestStream = [System.IO.MemoryStream]::new()
$requestStream.Write($headerBytes, 0, $headerBytes.Length)
$requestStream.Write($fileBytes, 0, $fileBytes.Length)
$requestStream.Write($footerBytes, 0, $footerBytes.Length)
$bodyBytes = $requestStream.ToArray()

$headers = @{
    "X-ChatworkToken" = $token
    "Content-Type"    = "multipart/form-data; boundary=$boundary"
}

Invoke-RestMethod -Uri $URL -Method Post -Headers $headers -Body $bodyBytes

-IT仕事, PowerAutomate

執筆者:

関連記事

no image

Limesurvey 表示される日本語をちょっと変更した

ひっさびさにlimesurveyを触ることになったけど、だいぶ忘れている・・・。 ボタンに表示されている日本語を変えるだけなのに、あのファイルこのファイルひっくり返し、最後にLC_MESSAGESフォ …

no image

PXE Terminael Server for HTTP-FUSE KNOPPIX

PXE Terminael Server for HTTP-FUSE KNOPPIXを使ってみた。 サイトからISOイメージをダウンロードして、CDに焼いた。 ISOイメージを焼くのは初めてだったが、 …

no image

自宅で使っているパソコン。 朝から使っていて、昼ごろ、急に動作がのろくなった。 起動してからデスクトップが使えるようになるまで、普段の3倍以上かかる。 現象の出る直前にいろいろハードをいじっていたので …

ShopifyからChatworkへ通知(JSON)

Arigato Automtion(Shopify)から、PowerAutomateへの、JSONデータの渡し方について、需要あるかもと思い、書いてみる。 自分がやっていた以前のやり方(これだと日本語 …

no image

Xojoに興味がある

というのも、Webアプリが作りたくなったからである。 https://xojo.grapecity.com/ HTML5が世に出てから数年したくらいに、Monacaの入門本を買って、それで試しにWeb …