MacのSlackアプリでアカウントを消されたチームを削除する

  • 2
    いいね
  • 0
    コメント

tl;dr

  • 設定ファイルを直接書き換えましょう

概要

MacのSlackアプリで、ログインしているチームを削除(ログアウト)したい場合、以下の2つの方法があります

  • チームメニューの一番下のSign out of XXXを選ぶ

スクリーンショット 2017-04-18 16.02.24.png

  • チームアイコン右クリックからRemove XXXを選ぶ

スクリーンショット 2017-04-18 16.03.10.png

しかし、後者の方はどうもバグ的な挙動でアプリを再起動するとチームが復活します。
なので、前者の方法を行えばいいのですが、チームからアカウントが削除されると前者のサインアウトメニューは出せなくなってしまいます。

対処方法

直接設定ファイルを書き換えるしか方法がなかったので、それを行います。
作業を始める前にSlackアプリを終了しておいてください。
また、ファイルを編集する前にかならずバックアップを取っておいてください。

Slackのアプリのデータは以下のフォルダに保管されています。

~/Library/Containers/com.tinyspeck.slackmacgap/Data/Library/Application Support/Slack/

その中の、storageフォルダ内に以下のような構成でログインしているチーム情報が保管されています。

  • slack-appTeams: ログインしているチームのID、起動時に選択されるチームのID
  • slack-teams: ログイン情報以外のデータ(自身のアカウントのID、テーマ、URL、アイコンなど)

この2ファイルから該当チームのデータを削除することで、ログインチーム一覧に表示されなくなります。

チームIDの検索とslack-teamsからの削除

はじめに、slack-teamsのファイルからチームデータの削除とチームIDのメモを行います。
このファイルはjsonで、以下のようなフォーマットで情報が保管されています。

{
  "[TEAM-ID1]":{
    チームの情報
  },
  "[TEAM-ID2]":{
    チームの情報
  },
  "[TEAM-ID3]":{
    チームの情報
  }
  .
  .
}

チーム情報の中にxxx.slack.comという文字であったり、チーム名が記載されているので、検索し、チームIDをメモします。
チームIDは、各チーム情報のKeyとなっている他、team_idの値としても保管されています。idは個人のアカウントのIDなので注意です。
IDをメモしたら、このファイル内から該当チームの項目をごそっと削除します。
上の例の中からTEAM-ID2のものを削除するなら、

{
  "[TEAM-ID1]":{
    チームの情報
  },
-  "[TEAM-ID2]":{
-    チームの情報
-  },
  "[TEAM-ID3]":{
    チームの情報
  }
  .
  .
}

この部分を削除してください。

slack-appTeamsからの削除

次に、slack-appTeamsからもチームのIDを消します。
こちらのファイルの構造は以下のようになっています。

{
  "selectedTeamId": "[TEAM-ID1]",
  "teamByIndex": [
    "[TEAM-ID1]",
    "[TEAM-ID2]",
    "[TEAM-ID3]",
    .
    .
  ]
}

この中から、teamByIndexのリストの中にある該当チームの項を削除してください。
また、仮にselectedTeamIdの方にも書かれていた場合は、他の適当なチームのIDに書き換えておいてください。

-

完了後、Slackを起動すると対象のチームが一覧から消えているはずです。