PowerShell

SlackのメッセージをCSVファイルとして保存するPowerShellスクリプト

数日前、今年の9月1日からSlackのフリープランではメッセージ履歴が過去90日分までしか閲覧できなくなるとの発表がありました。

 ただし、改定後のフリープランでは過去のメッセージ履歴やファイルを保存できるのは「最大90日間」のみ。これらの変更も値上げと同時の9月1日から適用され、同日以降は過去90日以前のメッセージやアップロードしたファイルが非表示になる。

 90日間を過ぎたメッセージとファイルを閲覧したい場合は、有料プランへのアップグレードが必要。これまで大学のサークル等で無料版を使用していたユーザーは、重要なファイルのバックアップを忘れないようにしたいところだ。

https://forest.watch.impress.co.jp/docs/news/1426026.html より

プライベートでSlackのフリープランを利用しているので、添付ファイルはともかくメッセージが遡れなくなるのはツライところがありますが、幸いSlackにはメッセージを取得するためのAPIが用意されているので、これを使って外部にログを残しておくための簡単なスクリプトを書いてみました。

APIトークンの取得方法

APIを利用するにはトークンが必要になるため、まずは下記の手順でトークンを取得しておきます。下記手順は2022年7月時点の情報で、今後仕様が変更される可能性がある点にはご注意ください。

  1. サインインした状態でSlack APIのサイトにアクセスします。
  2. Create an app」ボタンをクリックします。
  3. From scratch」を選択します。
  4. アプリ名の入力(App Name)とワークスペースを選択(Pick a workspace to develop your app in:)し、「Create App」ボタンをクリックします。
  5. Settingsメニューの「Basic Information」から「Permissions」を選択します。
  6. Scopesの「User Token Scopes」にある「Add an OAuth Scope」ボタンをクリックします。
  7. channels:history」と「channels:read」を追加します(※後述のチャンネル指定のスクリプトしか使用しない場合は「channels:read」は不要)。
  8. 「OAuth Tokens for Your Workspace」にある「Install to Workspace」ボタンをクリックします。
  9. 権限のリクエスト画面が表示されたら「許可する」ボタンをクリックします。
  10. トークンが発行されるので、「User OAuth Token」をコピーしておきます。

以上でAPIトークンの取得作業は終了です。
取得したトークンは漏れないよう保管しておく必要があります。

SlackのメッセージをCSVファイルとして保存するPowerShellスクリプト

今回書いたスクリプトが下記になります。
メッセージを保存できれば保存先は何でも良かったのですが、今回はとりあえず加工しやすいCSVファイルとして出力することにしました。

チャンネル指定

まずは指定したチャンネルのメッセージを保存するスクリプトです。
スクリプト内のチャンネルIDとトークンは環境に合わせて変更する必要があります。
チャンネルIDはURLやアプリのチャンネル詳細から確認できます。

全パブリックチャンネル

次はAPIでチャンネル情報を取得して、全パブリックチャンネルを対象にメッセージを保存するスクリプトです。
こちらもスクリプト内のトークンを環境に合わせて変更する必要があります。

出力したCSVファイル

スクリプトを実行すると下図のようなCSVファイルがデスクトップに出力されます。

2、30行程度の簡単なスクリプトですが、これでメッセージのバックアップを取るという目的は達成できました。

参考Webサイト

VBAでブラウザーを操作するSeleniumWrapperVBAの紹介前のページ

[Power Automate for desktop]データテーブルを操作するためのアクション次のページ

関連記事

  1. Office関連

    PowerShellからNetOfficeを使ってExcelを操作する方法

    先日、Excel MVPの伊藤さんがPowerShellからExcel…

  2. PowerShell

    [PowerShell]PdfSharpを使ってPDFファイルを作成する

    大分前になりますが、当ブログでiTextSharpを使ってPDFファイ…

  3. Office関連

    PowerShellからClosedXMLを使ってExcelファイルを作成する方法

    以前C#からClosedXMLを使ってExcelファイルを操作する方法…

  4. Office関連

    [PowerShell]Word文書の透かし文字を変更するスクリプト

    MSDNフォーラムに「PowerShellを使って、Word文書の透か…

  5. PowerShell

    ChromeDriverでBraveを操作するPowerShellスクリプト

    広告をブロックすることによって素早くページを読み込めるというブラウザー…

コメント

  • コメント (1)

  • トラックバックは利用できません。

    • YE
    • 2022年 8月 04日

    開発知識がないので困っていたところこちらのスクリプトを見つけてお借りしました。
    無事保存でき非常に助かりました。ありがとうございました!

Time limit is exhausted. Please reload CAPTCHA.

Translate

Chinese (Simplified)Chinese (Traditional)EnglishFrenchGermanJapaneseKoreanRussianSpanish

最近の記事

アーカイブ

PAGE TOP