diff --git a/app/slack_utils/user.py b/app/slack_utils/user.py
index fe8e3c6..176e788 100644
--- a/app/slack_utils/user.py
+++ b/app/slack_utils/user.py
@@ -22,8 +22,10 @@ class User:  # TODO: rename this class
                 return user["name"]
 
     def user_in_channel(self, user_id, channel_id):
-        users = self._slacker.channels.info(channel_id).body[
-            "channel"]["members"]
+        if channel_id[0] == "G":
+            users = self._slacker.groups.info(channel_id).body["group"]["members"]
+        else:
+            users = self._slacker.channels.info(channel_id).body["channel"]["members"]
         for user in users:
             if user == user_id:
                 return True

privateチャンネル対応
動かない気がしてる
diff --git a/test/slack_utils/user_test.py b/test/slack_utils/user_test.py
index 30500a5..39eee15 100644
--- a/test/slack_utils/user_test.py
+++ b/test/slack_utils/user_test.py
@@ -10,6 +10,10 @@ class MockedSlacker:
     def users(self):
         return MockedUser()
 
+    @property
+    def groups(self):
+        return MockedGroup()
+
     @property
     def channels(self):
         return MockedChannel()
@@ -71,10 +75,42 @@ class MockedUser:
         }
         )
 
+class MockedGroup:
+
+    def info(self, group_id):
+        if not group_id[0] == "G":
+            raise Exception()
+        return MockedBody(
+            {
+                "ok": True,
+                "group": {
+                    "id": "G023BECGF",
+                    "name": "fun",
+                    "created": 1360782804,
+                    "creator": "U024BE7LH",
+                    "is_archived": False,
+                    "is_general": False,
+                    "is_member": True,
+                    "is_starred": True,
+                    "members": [
+                            "U023BECGA",
+                    ],
+                    "topic": {},
+                    "purpose": {},
+                    "last_read": "1401383885.000061",
+                    "latest": {},
+                    "unread_count": 0,
+                    "unread_count_display": 0
+                }
+            }
+        )
 
 class MockedChannel:
 
     def info(self, channel_id):
+        if not channel_id[0] == "C":
+            raise Exception()
+        
         return MockedBody(
             {
                 "ok": True,
@@ -148,3 +184,12 @@ class UserTest(unittest.TestCase):
     def test_user_in_channel_return_False_when_user_not_exists(self):
         notexists = self.user.user_in_channel("UNONONONONO", "C023BECGA")
         self.assertFalse(notexists)
+
+    def test_user_in_privatechannel_return_True_when_user_exists(self):
+        exists = self.user.user_in_channel("U023BECGA", "G023BECGF")
+        self.assertTrue(exists)
+
+    def test_user_in_private_channel_return_False_when_user_not_exists(self):
+        notexists = self.user.user_in_channel("UNONONONONO", "G023BECGF")
+        self.assertFalse(notexists)
+        

pip install -e .
parse_log_pytest
pytest
pytest
3.9
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
certifi==2025.1.31
charset-normalizer==3.4.1
exceptiongroup @ file:///croot/exceptiongroup_1706031385326/work
idna==3.10
iniconfig @ file:///home/linux1/recipes/ci/iniconfig_1610983019677/work
packaging @ file:///croot/packaging_1734472117206/work
pluggy @ file:///croot/pluggy_1733169602837/work
pytest @ file:///croot/pytest_1738938843180/work
requests==2.32.3
six==1.17.0
-e git+https://github.com/setokinto/slack-shogi.git@ba7768484d154d0ac8f2d3852748462d10a78a83#egg=Slack_Shogi
slackbot==1.0.5
slacker==0.14.0
tomli @ file:///opt/conda/conda-bld/tomli_1657175507142/work
urllib3==2.3.0
websocket-client==1.6.0

name: slack-shogi
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - ca-certificates=2025.2.25=h06a4308_0
  - exceptiongroup=1.2.0=py39h06a4308_0
  - iniconfig=1.1.1=pyhd3eb1b0_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.4.4=h6a678d5_1
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - openssl=3.0.16=h5eee18b_0
  - packaging=24.2=py39h06a4308_0
  - pip=25.0=py39h06a4308_0
  - pluggy=1.5.0=py39h06a4308_0
  - pytest=8.3.4=py39h06a4308_0
  - python=3.9.21=he870216_1
  - readline=8.2=h5eee18b_0
  - setuptools=75.8.0=py39h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - tomli=2.0.1=py39h06a4308_0
  - tzdata=2025a=h04d1e81_0
  - wheel=0.45.1=py39h06a4308_0
  - xz=5.6.4=h5eee18b_1
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - certifi==2025.1.31
      - charset-normalizer==3.4.1
      - idna==3.10
      - requests==2.32.3
      - six==1.17.0
      - slackbot==1.0.5
      - slacker==0.14.0
      - urllib3==2.3.0
      - websocket-client==1.6.0
prefix: /opt/conda/envs/slack-shogi

test/slack_utils/user_test.py::UserTest::test_user_in_private_channel_return_False_when_user_not_exists test/slack_utils/user_test.py::UserTest::test_user_in_privatechannel_return_True_when_user_exists
test/slack_utils/user_test.py::UserTest::test_find_userid_from_username test/slack_utils/user_test.py::UserTest::test_find_userid_with_atmark_prefix test/slack_utils/user_test.py::UserTest::test_find_username_from_userid test/slack_utils/user_test.py::UserTest::test_return_None_non_exists_user_name test/slack_utils/user_test.py::UserTest::test_user_in_channel_return_False_when_user_not_exists test/slack_utils/user_test.py::UserTest::test_user_in_channel_return_True_when_user_exists
app/slack_utils/user.py
app/slack_utils/user.py