slack-ruby-client 2.4.0 → 2.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (210) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/update_api.yml +1 -1
  3. data/.rubocop_todo.yml +43 -13
  4. data/CHANGELOG.md +12 -0
  5. data/CONTRIBUTING.md +7 -7
  6. data/Gemfile +1 -0
  7. data/README.md +46 -28
  8. data/bin/commands/admin_conversations.rb +21 -0
  9. data/bin/commands/admin_users_session.rb +1 -1
  10. data/bin/commands/admin_workflows.rb +3 -1
  11. data/bin/commands/admin_workflows_triggers_types_permissions.rb +4 -4
  12. data/bin/commands/assistant_threads.rb +45 -0
  13. data/bin/commands/bookmarks.rb +1 -0
  14. data/bin/commands/canvases.rb +4 -4
  15. data/bin/commands/canvases_access.rb +3 -3
  16. data/bin/commands/chat.rb +7 -3
  17. data/bin/commands/conversations.rb +5 -5
  18. data/bin/commands/conversations_canvases.rb +2 -2
  19. data/bin/commands/conversations_requestSharedInvite.rb +48 -0
  20. data/bin/commands/files.rb +2 -1
  21. data/bin/commands/usergroups.rb +5 -0
  22. data/bin/commands/usergroups_users.rb +2 -0
  23. data/examples/files_upload_v2/.env.example +1 -0
  24. data/examples/files_upload_v2/Gemfile +5 -0
  25. data/examples/files_upload_v2/README.md +13 -0
  26. data/examples/files_upload_v2/files_upload_v2.rb +37 -0
  27. data/examples/oauth_v2/.env.example +4 -0
  28. data/examples/oauth_v2/Gemfile +7 -0
  29. data/examples/oauth_v2/README.md +33 -0
  30. data/examples/oauth_v2/oauth_v2.rb +60 -0
  31. data/lib/slack/messages/formatting.rb +1 -1
  32. data/lib/slack/version.rb +1 -1
  33. data/lib/slack/web/api/endpoints/admin_conversations.rb +35 -0
  34. data/lib/slack/web/api/endpoints/admin_users_session.rb +2 -3
  35. data/lib/slack/web/api/endpoints/admin_workflows.rb +5 -1
  36. data/lib/slack/web/api/endpoints/admin_workflows_triggers_types_permissions.rb +2 -2
  37. data/lib/slack/web/api/endpoints/assistant_threads.rb +68 -0
  38. data/lib/slack/web/api/endpoints/bookmarks.rb +2 -0
  39. data/lib/slack/web/api/endpoints/canvases.rb +2 -2
  40. data/lib/slack/web/api/endpoints/canvases_access.rb +4 -4
  41. data/lib/slack/web/api/endpoints/chat.rb +12 -3
  42. data/lib/slack/web/api/endpoints/conversations.rb +4 -4
  43. data/lib/slack/web/api/endpoints/conversations_canvases.rb +1 -1
  44. data/lib/slack/web/api/endpoints/conversations_requestSharedInvite.rb +73 -0
  45. data/lib/slack/web/api/endpoints/files.rb +3 -1
  46. data/lib/slack/web/api/endpoints/usergroups.rb +10 -0
  47. data/lib/slack/web/api/endpoints/usergroups_users.rb +4 -0
  48. data/lib/slack/web/api/endpoints.rb +4 -0
  49. data/lib/slack/web/api/errors.rb +48 -4
  50. data/lib/slack/web/api/helpers/files.rb +87 -0
  51. data/lib/slack/web/api/helpers.rb +13 -0
  52. data/lib/slack/web/api/templates/method_spec.erb +4 -3
  53. data/lib/slack/web/client.rb +1 -0
  54. data/lib/slack/web/faraday/connection.rb +13 -26
  55. data/lib/slack/web/faraday/options.rb +24 -0
  56. data/lib/slack/web/faraday/request.rb +2 -1
  57. data/lib/slack-ruby-client.rb +2 -0
  58. data/slack-ruby-client.gemspec +2 -1
  59. metadata +32 -154
  60. data/screenshots/create-app.png +0 -0
  61. data/spec/fixtures/slack/web/429_error.yml +0 -81
  62. data/spec/fixtures/slack/web/auth_test_error.yml +0 -81
  63. data/spec/fixtures/slack/web/auth_test_success.yml +0 -81
  64. data/spec/fixtures/slack/web/conversations_info.yml +0 -167
  65. data/spec/fixtures/slack/web/conversations_setTopic.yml +0 -84
  66. data/spec/fixtures/slack/web/conversations_setTopic_one_page.yml +0 -172
  67. data/spec/fixtures/slack/web/conversations_setTopic_paginated.yml +0 -253
  68. data/spec/fixtures/slack/web/paginated_users_list.yml +0 -613
  69. data/spec/fixtures/slack/web/rtm_connect.yml +0 -391
  70. data/spec/fixtures/slack/web/users_info.yml +0 -214
  71. data/spec/fixtures/slack/web/users_list.yml +0 -133
  72. data/spec/fixtures/slack/web/views_open_error.yml +0 -83
  73. data/spec/integration/integration_spec.rb +0 -207
  74. data/spec/slack/config_spec.rb +0 -16
  75. data/spec/slack/events/config_spec.rb +0 -35
  76. data/spec/slack/events/request_spec.rb +0 -199
  77. data/spec/slack/messages/formatting_spec.rb +0 -156
  78. data/spec/slack/real_time/api/message_spec.rb +0 -20
  79. data/spec/slack/real_time/api/ping_spec.rb +0 -17
  80. data/spec/slack/real_time/api/typing_spec.rb +0 -19
  81. data/spec/slack/real_time/client_spec.rb +0 -601
  82. data/spec/slack/real_time/concurrency/clients/async_spec.rb +0 -16
  83. data/spec/slack/real_time/concurrency/it_behaves_like_a_realtime_socket.rb +0 -21
  84. data/spec/slack/real_time/concurrency/with_concurrency_spec.rb +0 -10
  85. data/spec/slack/real_time/concurrency/without_concurrency_spec.rb +0 -10
  86. data/spec/slack/real_time/event_handlers/bot_spec.rb +0 -47
  87. data/spec/slack/real_time/event_handlers/event_handlers_spec.rb +0 -16
  88. data/spec/slack/real_time/event_handlers/im_spec.rb +0 -51
  89. data/spec/slack/real_time/event_handlers/private_channel_spec.rb +0 -99
  90. data/spec/slack/real_time/event_handlers/public_channel_spec.rb +0 -123
  91. data/spec/slack/real_time/event_handlers/team_spec.rb +0 -63
  92. data/spec/slack/real_time/event_handlers/user_spec.rb +0 -65
  93. data/spec/slack/real_time/rtm_connect_spec.rb +0 -14
  94. data/spec/slack/real_time/stores/store_spec.rb +0 -50
  95. data/spec/slack/slack_spec.rb +0 -93
  96. data/spec/slack/version_spec.rb +0 -8
  97. data/spec/slack/web/api/endpoints/admin_analytics_spec.rb +0 -13
  98. data/spec/slack/web/api/endpoints/admin_apps_activities_spec.rb +0 -8
  99. data/spec/slack/web/api/endpoints/admin_apps_approved_spec.rb +0 -8
  100. data/spec/slack/web/api/endpoints/admin_apps_config_spec.rb +0 -18
  101. data/spec/slack/web/api/endpoints/admin_apps_requests_spec.rb +0 -13
  102. data/spec/slack/web/api/endpoints/admin_apps_restricted_spec.rb +0 -8
  103. data/spec/slack/web/api/endpoints/admin_apps_spec.rb +0 -18
  104. data/spec/slack/web/api/endpoints/admin_audit_anomaly_allow_spec.rb +0 -8
  105. data/spec/slack/web/api/endpoints/admin_auth_policy_spec.rb +0 -35
  106. data/spec/slack/web/api/endpoints/admin_barriers_spec.rb +0 -38
  107. data/spec/slack/web/api/endpoints/admin_conversations_ekm_spec.rb +0 -8
  108. data/spec/slack/web/api/endpoints/admin_conversations_restrictAccess_spec.rb +0 -32
  109. data/spec/slack/web/api/endpoints/admin_conversations_spec.rb +0 -133
  110. data/spec/slack/web/api/endpoints/admin_emoji_spec.rb +0 -37
  111. data/spec/slack/web/api/endpoints/admin_functions_permissions_spec.rb +0 -21
  112. data/spec/slack/web/api/endpoints/admin_functions_spec.rb +0 -13
  113. data/spec/slack/web/api/endpoints/admin_inviteRequests_approved_spec.rb +0 -8
  114. data/spec/slack/web/api/endpoints/admin_inviteRequests_denied_spec.rb +0 -8
  115. data/spec/slack/web/api/endpoints/admin_inviteRequests_spec.rb +0 -18
  116. data/spec/slack/web/api/endpoints/admin_roles_spec.rb +0 -30
  117. data/spec/slack/web/api/endpoints/admin_teams_admins_spec.rb +0 -13
  118. data/spec/slack/web/api/endpoints/admin_teams_owners_spec.rb +0 -13
  119. data/spec/slack/web/api/endpoints/admin_teams_settings_spec.rb +0 -53
  120. data/spec/slack/web/api/endpoints/admin_teams_spec.rb +0 -16
  121. data/spec/slack/web/api/endpoints/admin_usergroups_spec.rb +0 -37
  122. data/spec/slack/web/api/endpoints/admin_users_session_spec.rb +0 -41
  123. data/spec/slack/web/api/endpoints/admin_users_spec.rb +0 -67
  124. data/spec/slack/web/api/endpoints/admin_users_unsupportedVersions_spec.rb +0 -8
  125. data/spec/slack/web/api/endpoints/admin_workflows_collaborators_spec.rb +0 -24
  126. data/spec/slack/web/api/endpoints/admin_workflows_permissions_spec.rb +0 -13
  127. data/spec/slack/web/api/endpoints/admin_workflows_spec.rb +0 -13
  128. data/spec/slack/web/api/endpoints/admin_workflows_triggers_types_permissions_spec.rb +0 -21
  129. data/spec/slack/web/api/endpoints/api_spec.rb +0 -8
  130. data/spec/slack/web/api/endpoints/apps_activities_spec.rb +0 -13
  131. data/spec/slack/web/api/endpoints/apps_auth_external_spec.rb +0 -13
  132. data/spec/slack/web/api/endpoints/apps_connections_spec.rb +0 -8
  133. data/spec/slack/web/api/endpoints/apps_datastore_spec.rb +0 -74
  134. data/spec/slack/web/api/endpoints/apps_event_authorizations_spec.rb +0 -13
  135. data/spec/slack/web/api/endpoints/apps_manifest_spec.rb +0 -44
  136. data/spec/slack/web/api/endpoints/apps_spec.rb +0 -16
  137. data/spec/slack/web/api/endpoints/auth_spec.rb +0 -8
  138. data/spec/slack/web/api/endpoints/auth_teams_spec.rb +0 -8
  139. data/spec/slack/web/api/endpoints/bookmarks_spec.rb +0 -40
  140. data/spec/slack/web/api/endpoints/bots_spec.rb +0 -8
  141. data/spec/slack/web/api/endpoints/calls_participants_spec.rb +0 -24
  142. data/spec/slack/web/api/endpoints/calls_spec.rb +0 -31
  143. data/spec/slack/web/api/endpoints/canvases_access_spec.rb +0 -21
  144. data/spec/slack/web/api/endpoints/canvases_sections_spec.rb +0 -16
  145. data/spec/slack/web/api/endpoints/canvases_spec.rb +0 -21
  146. data/spec/slack/web/api/endpoints/chat_scheduledMessages_spec.rb +0 -8
  147. data/spec/slack/web/api/endpoints/chat_spec.rb +0 -134
  148. data/spec/slack/web/api/endpoints/conversations_canvases_spec.rb +0 -13
  149. data/spec/slack/web/api/endpoints/conversations_externalInvitePermissions_spec.rb +0 -19
  150. data/spec/slack/web/api/endpoints/conversations_spec.rb +0 -8
  151. data/spec/slack/web/api/endpoints/custom_specs/auth_spec.rb +0 -27
  152. data/spec/slack/web/api/endpoints/custom_specs/chat_spec.rb +0 -206
  153. data/spec/slack/web/api/endpoints/custom_specs/conversations_spec.rb +0 -13
  154. data/spec/slack/web/api/endpoints/custom_specs/dialog_spec.rb +0 -40
  155. data/spec/slack/web/api/endpoints/custom_specs/users_spec.rb +0 -38
  156. data/spec/slack/web/api/endpoints/custom_specs/views_spec.rb +0 -112
  157. data/spec/slack/web/api/endpoints/dialog_spec.rb +0 -14
  158. data/spec/slack/web/api/endpoints/dnd_spec.rb +0 -18
  159. data/spec/slack/web/api/endpoints/emoji_spec.rb +0 -8
  160. data/spec/slack/web/api/endpoints/files_comments_spec.rb +0 -16
  161. data/spec/slack/web/api/endpoints/files_remote_spec.rb +0 -24
  162. data/spec/slack/web/api/endpoints/files_spec.rb +0 -57
  163. data/spec/slack/web/api/endpoints/functions_distributions_permissions_spec.rb +0 -10
  164. data/spec/slack/web/api/endpoints/functions_spec.rb +0 -28
  165. data/spec/slack/web/api/endpoints/functions_workflows_steps_responses_spec.rb +0 -13
  166. data/spec/slack/web/api/endpoints/functions_workflows_steps_spec.rb +0 -13
  167. data/spec/slack/web/api/endpoints/migration_spec.rb +0 -13
  168. data/spec/slack/web/api/endpoints/oauth_spec.rb +0 -8
  169. data/spec/slack/web/api/endpoints/oauth_v2_spec.rb +0 -16
  170. data/spec/slack/web/api/endpoints/openid_connect_spec.rb +0 -8
  171. data/spec/slack/web/api/endpoints/pins_spec.rb +0 -23
  172. data/spec/slack/web/api/endpoints/reactions_spec.rb +0 -24
  173. data/spec/slack/web/api/endpoints/reminders_spec.rb +0 -31
  174. data/spec/slack/web/api/endpoints/rtm_spec.rb +0 -8
  175. data/spec/slack/web/api/endpoints/search_spec.rb +0 -23
  176. data/spec/slack/web/api/endpoints/stars_spec.rb +0 -8
  177. data/spec/slack/web/api/endpoints/team_billing_spec.rb +0 -8
  178. data/spec/slack/web/api/endpoints/team_externalTeams_spec.rb +0 -13
  179. data/spec/slack/web/api/endpoints/team_preferences_spec.rb +0 -8
  180. data/spec/slack/web/api/endpoints/team_profile_spec.rb +0 -8
  181. data/spec/slack/web/api/endpoints/team_spec.rb +0 -8
  182. data/spec/slack/web/api/endpoints/tooling_tokens_spec.rb +0 -13
  183. data/spec/slack/web/api/endpoints/usergroups_spec.rb +0 -28
  184. data/spec/slack/web/api/endpoints/usergroups_users_spec.rb +0 -21
  185. data/spec/slack/web/api/endpoints/users_admin_spec.rb +0 -18
  186. data/spec/slack/web/api/endpoints/users_discoverableContacts_spec.rb +0 -13
  187. data/spec/slack/web/api/endpoints/users_prefs_spec.rb +0 -8
  188. data/spec/slack/web/api/endpoints/users_profile_spec.rb +0 -14
  189. data/spec/slack/web/api/endpoints/users_spec.rb +0 -8
  190. data/spec/slack/web/api/endpoints/views_spec.rb +0 -65
  191. data/spec/slack/web/api/endpoints/workflows_spec.rb +0 -34
  192. data/spec/slack/web/api/endpoints/workflows_triggers_permissions_spec.rb +0 -31
  193. data/spec/slack/web/api/error_spec.rb +0 -14
  194. data/spec/slack/web/api/errors/slack_error_spec.rb +0 -33
  195. data/spec/slack/web/api/mixins/conversations_list_spec.rb +0 -21
  196. data/spec/slack/web/api/mixins/conversations_spec.rb +0 -45
  197. data/spec/slack/web/api/mixins/users_spec.rb +0 -52
  198. data/spec/slack/web/api/options_spec.rb +0 -69
  199. data/spec/slack/web/api/pagination/cursor_spec.rb +0 -102
  200. data/spec/slack/web/client_spec.rb +0 -359
  201. data/spec/slack/web/faraday/request_spec.rb +0 -80
  202. data/spec/slack/web/faraday/response/raise_error_spec.rb +0 -86
  203. data/spec/spec_helper.rb +0 -30
  204. data/spec/support/queue_with_timeout.rb +0 -35
  205. data/spec/support/real_time/concurrency/mock.rb +0 -31
  206. data/spec/support/real_time/connected_client.rb +0 -21
  207. data/spec/support/real_time/event.rb +0 -12
  208. data/spec/support/real_time/loaded_client.rb +0 -120
  209. data/spec/support/token.rb +0 -11
  210. data/spec/support/vcr.rb +0 -45
@@ -1,133 +0,0 @@
1
- ---
2
- http_interactions:
3
- - request:
4
- method: post
5
- uri: https://slack.com/api/users.list
6
- body:
7
- encoding: UTF-8
8
- string: presence=true
9
- headers:
10
- Accept:
11
- - application/json; charset=utf-8
12
- User-Agent:
13
- - Slack Ruby Client/0.18.0
14
- Authorization:
15
- - Bearer <SLACK_API_TOKEN>
16
- Content-Type:
17
- - application/x-www-form-urlencoded
18
- Accept-Encoding:
19
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
20
- response:
21
- status:
22
- code: 200
23
- message: OK
24
- headers:
25
- Date:
26
- - Sat, 04 Dec 2021 20:13:19 GMT
27
- Server:
28
- - Apache
29
- Access-Control-Allow-Origin:
30
- - "*"
31
- Referrer-Policy:
32
- - no-referrer
33
- X-Slack-Backend:
34
- - r
35
- Strict-Transport-Security:
36
- - max-age=31536000; includeSubDomains; preload
37
- Access-Control-Allow-Headers:
38
- - slack-route, x-slack-version-ts, x-b3-traceid, x-b3-spanid, x-b3-parentspanid,
39
- x-b3-sampled, x-b3-flags
40
- Access-Control-Expose-Headers:
41
- - x-slack-req-id, retry-after
42
- X-Oauth-Scopes:
43
- - identify,read,post,client,apps
44
- X-Accepted-Oauth-Scopes:
45
- - users:read,read
46
- Expires:
47
- - Mon, 26 Jul 1997 05:00:00 GMT
48
- Cache-Control:
49
- - private, no-cache, no-store, must-revalidate
50
- Pragma:
51
- - no-cache
52
- X-Xss-Protection:
53
- - '0'
54
- X-Content-Type-Options:
55
- - nosniff
56
- X-Slack-Req-Id:
57
- - 8c9e75524bc5c8ca8e83e43300e6404f
58
- Vary:
59
- - Accept-Encoding
60
- Content-Length:
61
- - '5472'
62
- Content-Type:
63
- - application/json; charset=utf-8
64
- X-Envoy-Upstream-Service-Time:
65
- - '72'
66
- X-Backend:
67
- - main_normal main_bedrock_normal_with_overflow main_canary_with_overflow main_bedrock_canary_with_overflow
68
- main_control_with_overflow main_bedrock_control_with_overflow
69
- X-Server:
70
- - slack-www-hhvm-main-iad-akd0
71
- X-Slack-Shared-Secret-Outcome:
72
- - no-match
73
- Via:
74
- - envoy-www-iad-6b4y, envoy-edge-iad-dq42
75
- X-Edge-Backend:
76
- - envoy-www
77
- X-Slack-Edge-Shared-Secret-Outcome:
78
- - no-match
79
- body:
80
- encoding: UTF-8
81
- string: '{"ok":true,"members":[{"id":"U04JPQ0JS","team_id":"T04KB5WQH","name":"gamebot","deleted":false,"presence":"away","profile":{"title":"Game
82
- ons.","phone":"","skype":"","real_name":"Game Bot","real_name_normalized":"Game
83
- Bot","display_name":"gamebot","display_name_normalized":"gamebot","fields":null,"status_text":"","status_emoji":"","status_emoji_display_info":[],"status_expiration":0,"avatar_hash":"28d3661bf00d","image_original":"https:\/\/avatars.slack-edge.com\/2015-04-28\/4635825662_28d3661bf00dc6013442_original.jpg","is_custom_image":true,"bot_id":"B04JPQ0JE","first_name":"Game","last_name":"Bot","image_24":"https:\/\/avatars.slack-edge.com\/2015-04-28\/4635825662_28d3661bf00dc6013442_24.jpg","image_32":"https:\/\/avatars.slack-edge.com\/2015-04-28\/4635825662_28d3661bf00dc6013442_32.jpg","image_48":"https:\/\/avatars.slack-edge.com\/2015-04-28\/4635825662_28d3661bf00dc6013442_48.jpg","image_72":"https:\/\/avatars.slack-edge.com\/2015-04-28\/4635825662_28d3661bf00dc6013442_48.jpg","image_192":"https:\/\/avatars.slack-edge.com\/2015-04-28\/4635825662_28d3661bf00dc6013442_48.jpg","image_512":"","status_text_canonical":"","team":"T04KB5WQH"},"is_bot":true,"is_app_user":false,"updated":1504224422},{"id":"U04JZBDQQ","team_id":"T04KB5WQH","name":"foo","deleted":true,"profile":{"title":"","phone":"","skype":"","real_name":"foo","real_name_normalized":"foo","display_name":"","display_name_normalized":"","fields":null,"status_text":"","status_emoji":"","status_emoji_display_info":[],"status_expiration":0,"avatar_hash":"44604ca32e80","image_original":"https:\/\/avatars.slack-edge.com\/2015-04-28\/4645387956_44604ca32e800d947f22_original.jpg","is_custom_image":true,"bot_id":"B04JZBDQC","image_24":"https:\/\/avatars.slack-edge.com\/2015-04-28\/4645387956_44604ca32e800d947f22_24.jpg","image_32":"https:\/\/avatars.slack-edge.com\/2015-04-28\/4645387956_44604ca32e800d947f22_32.jpg","image_48":"https:\/\/avatars.slack-edge.com\/2015-04-28\/4645387956_44604ca32e800d947f22_48.jpg","image_72":"https:\/\/avatars.slack-edge.com\/2015-04-28\/4645387956_44604ca32e800d947f22_72.jpg","image_192":"https:\/\/avatars.slack-edge.com\/2015-04-28\/4645387956_44604ca32e800d947f22_192.jpg","image_512":"","status_text_canonical":"","team":"T04KB5WQH"},"is_bot":true,"is_app_user":false,"updated":1504224428},{"id":"U04KB5WQR","team_id":"T04KB5WQH","name":"dblock","deleted":false,"color":"9f69e7","real_name":"Daniel","tz":"America\/New_York","tz_label":"Eastern
84
- Standard Time","tz_offset":-18000,"profile":{"title":"","phone":"","skype":"","real_name":"Daniel","real_name_normalized":"Daniel","display_name":"dblock","display_name_normalized":"dblock","fields":null,"status_text":"A
85
- few vices are sufficient to darken many virtues.","status_emoji":":coffee:","status_emoji_display_info":[],"status_expiration":0,"avatar_hash":"g925b45ac07e","email":"dblock@dblock.org","first_name":"Daniel","last_name":"","image_24":"https:\/\/secure.gravatar.com\/avatar\/3d925b45ac07ec0ae5bd04888f6c5b61.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0015-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/3d925b45ac07ec0ae5bd04888f6c5b61.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0015-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/3d925b45ac07ec0ae5bd04888f6c5b61.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0015-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/3d925b45ac07ec0ae5bd04888f6c5b61.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0015-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/3d925b45ac07ec0ae5bd04888f6c5b61.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0015-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/3d925b45ac07ec0ae5bd04888f6c5b61.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0015-512.png","status_text_canonical":"","team":"T04KB5WQH"},"is_admin":true,"is_owner":true,"is_primary_owner":true,"is_restricted":false,"is_ultra_restricted":false,"is_bot":false,"is_app_user":false,"updated":1604096800,"is_email_confirmed":true,"who_can_share_contact_card":"EVERYONE"},{"id":"U06JGTU5V","team_id":"T04KB5WQH","name":"mathbot","deleted":true,"profile":{"title":"","phone":"","skype":"","real_name":"Math
86
- Bot","real_name_normalized":"Math Bot","display_name":"mathbot","display_name_normalized":"mathbot","fields":null,"status_text":"","status_emoji":"","status_emoji_display_info":[],"status_expiration":0,"avatar_hash":"c507c80d735d","image_original":"https:\/\/avatars.slack-edge.com\/2015-06-19\/6629501812_c507c80d735dfc75bbc8_original.jpg","is_custom_image":true,"bot_id":"B06JH1N93","first_name":"Math","last_name":"Bot","image_24":"https:\/\/avatars.slack-edge.com\/2015-06-19\/6629501812_c507c80d735dfc75bbc8_24.jpg","image_32":"https:\/\/avatars.slack-edge.com\/2015-06-19\/6629501812_c507c80d735dfc75bbc8_32.jpg","image_48":"https:\/\/avatars.slack-edge.com\/2015-06-19\/6629501812_c507c80d735dfc75bbc8_48.jpg","image_72":"https:\/\/avatars.slack-edge.com\/2015-06-19\/6629501812_c507c80d735dfc75bbc8_48.jpg","image_192":"https:\/\/avatars.slack-edge.com\/2015-06-19\/6629501812_c507c80d735dfc75bbc8_48.jpg","image_512":"","status_text_canonical":"","team":"T04KB5WQH"},"is_bot":true,"is_app_user":false,"updated":1504224658},{"id":"U07518DTL","team_id":"T04KB5WQH","name":"testbot","deleted":false,"color":"674b1b","real_name":"Art
87
- Bot","tz":"America\/Los_Angeles","tz_label":"Pacific Standard Time","tz_offset":-28800,"profile":{"title":"Also
88
- used in Travis-CI for slack-ruby-client.","phone":"","skype":"","real_name":"Art
89
- Bot","real_name_normalized":"Art Bot","display_name":"testbot","display_name_normalized":"testbot","fields":null,"status_text":"","status_emoji":"","status_emoji_display_info":[],"status_expiration":0,"avatar_hash":"359bf095c1fe","image_original":"https:\/\/avatars.slack-edge.com\/2015-07-02\/7171641589_359bf095c1fe0841e582_original.jpg","is_custom_image":true,"bot_id":"B0751JU2H","first_name":"Art","last_name":"Bot","image_24":"https:\/\/avatars.slack-edge.com\/2015-07-02\/7171641589_359bf095c1fe0841e582_24.jpg","image_32":"https:\/\/avatars.slack-edge.com\/2015-07-02\/7171641589_359bf095c1fe0841e582_32.jpg","image_48":"https:\/\/avatars.slack-edge.com\/2015-07-02\/7171641589_359bf095c1fe0841e582_48.jpg","image_72":"https:\/\/avatars.slack-edge.com\/2015-07-02\/7171641589_359bf095c1fe0841e582_48.jpg","image_192":"https:\/\/avatars.slack-edge.com\/2015-07-02\/7171641589_359bf095c1fe0841e582_48.jpg","image_512":"","status_text_canonical":"","team":"T04KB5WQH"},"is_admin":false,"is_owner":false,"is_primary_owner":false,"is_restricted":false,"is_ultra_restricted":false,"is_bot":true,"is_app_user":false,"updated":1504224669,"is_email_confirmed":false,"who_can_share_contact_card":"EVERYONE"},{"id":"U07KECJ77","team_id":"T04KB5WQH","name":"aws","deleted":true,"profile":{"title":"","phone":"","skype":"","real_name":"AWS
90
- Cloud","real_name_normalized":"AWS Cloud","display_name":"aws","display_name_normalized":"aws","fields":null,"status_text":"","status_emoji":"","status_emoji_display_info":[],"status_expiration":0,"avatar_hash":"4755a86e204c","image_original":"https:\/\/avatars.slack-edge.com\/2015-07-14\/7660472085_4755a86e204c9706c84f_original.jpg","is_custom_image":true,"bot_id":"B07KECJ6R","first_name":"AWS","last_name":"Cloud","image_24":"https:\/\/avatars.slack-edge.com\/2015-07-14\/7660472085_4755a86e204c9706c84f_24.jpg","image_32":"https:\/\/avatars.slack-edge.com\/2015-07-14\/7660472085_4755a86e204c9706c84f_32.jpg","image_48":"https:\/\/avatars.slack-edge.com\/2015-07-14\/7660472085_4755a86e204c9706c84f_48.jpg","image_72":"https:\/\/avatars.slack-edge.com\/2015-07-14\/7660472085_4755a86e204c9706c84f_48.jpg","image_192":"https:\/\/avatars.slack-edge.com\/2015-07-14\/7660472085_4755a86e204c9706c84f_48.jpg","image_512":"","status_text_canonical":"","team":"T04KB5WQH"},"is_bot":true,"is_app_user":false,"updated":1504224679},{"id":"U092BDCLV","team_id":"T04KB5WQH","name":"artsy","deleted":true,"profile":{"title":"Searches
91
- Artsy.","phone":"","skype":"","real_name":"Artsy Bot","real_name_normalized":"Artsy
92
- Bot","display_name":"artsy","display_name_normalized":"artsy","fields":null,"status_text":"","status_emoji":"","status_emoji_display_info":[],"status_expiration":0,"avatar_hash":"7bbab49314a0","image_original":"https:\/\/avatars.slack-edge.com\/2015-08-13\/9080316676_7bbab49314a0429c7f7d_original.jpg","is_custom_image":true,"bot_id":"B092B5DDG","first_name":"Artsy","last_name":"Bot","image_24":"https:\/\/avatars.slack-edge.com\/2015-08-13\/9080316676_7bbab49314a0429c7f7d_24.jpg","image_32":"https:\/\/avatars.slack-edge.com\/2015-08-13\/9080316676_7bbab49314a0429c7f7d_32.jpg","image_48":"https:\/\/avatars.slack-edge.com\/2015-08-13\/9080316676_7bbab49314a0429c7f7d_48.jpg","image_72":"https:\/\/avatars.slack-edge.com\/2015-08-13\/9080316676_7bbab49314a0429c7f7d_48.jpg","image_192":"https:\/\/avatars.slack-edge.com\/2015-08-13\/9080316676_7bbab49314a0429c7f7d_48.jpg","image_512":"https:\/\/avatars.slack-edge.com\/2015-08-13\/9080316676_7bbab49314a0429c7f7d_48.jpg","image_1024":"https:\/\/avatars.slack-edge.com\/2015-08-13\/9080316676_7bbab49314a0429c7f7d_48.jpg","status_text_canonical":"","team":"T04KB5WQH"},"is_bot":true,"is_app_user":false,"updated":1504224699},{"id":"U092V4E9L","team_id":"T04KB5WQH","name":"broskoski","deleted":true,"profile":{"title":"","phone":"","skype":"","real_name":"Cab","real_name_normalized":"Cab","display_name":"broskoski","display_name_normalized":"broskoski","fields":null,"status_text":"","status_emoji":"","status_emoji_display_info":[],"status_expiration":0,"avatar_hash":"g621cbca6ea9","email":"cab@artsymail.com","first_name":"Cab","image_24":"https:\/\/secure.gravatar.com\/avatar\/99621cbca6ea94706a8f5dcdc5e8af4a.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0017-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/99621cbca6ea94706a8f5dcdc5e8af4a.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0017-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/99621cbca6ea94706a8f5dcdc5e8af4a.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0017-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/99621cbca6ea94706a8f5dcdc5e8af4a.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0017-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/99621cbca6ea94706a8f5dcdc5e8af4a.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0017-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/99621cbca6ea94706a8f5dcdc5e8af4a.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0017-512.png","status_text_canonical":"","team":"T04KB5WQH"},"is_bot":false,"is_app_user":false,"updated":1569143041},{"id":"U0EA7TZJN","team_id":"T04KB5WQH","name":"bar","deleted":true,"profile":{"title":"","phone":"","skype":"","real_name":"bar","real_name_normalized":"bar","display_name":"","display_name_normalized":"","fields":null,"status_text":"","status_emoji":"","status_emoji_display_info":[],"status_expiration":0,"avatar_hash":"f359ba59a121","image_original":"https:\/\/avatars.slack-edge.com\/2015-11-11\/14346833313_f359ba59a1211d17912b_original.jpg","is_custom_image":true,"bot_id":"B0EA31LQM","image_24":"https:\/\/avatars.slack-edge.com\/2015-11-11\/14346833313_f359ba59a1211d17912b_24.jpg","image_32":"https:\/\/avatars.slack-edge.com\/2015-11-11\/14346833313_f359ba59a1211d17912b_32.jpg","image_48":"https:\/\/avatars.slack-edge.com\/2015-11-11\/14346833313_f359ba59a1211d17912b_48.jpg","image_72":"https:\/\/avatars.slack-edge.com\/2015-11-11\/14346833313_f359ba59a1211d17912b_72.jpg","image_192":"https:\/\/avatars.slack-edge.com\/2015-11-11\/14346833313_f359ba59a1211d17912b_192.jpg","image_512":"https:\/\/avatars.slack-edge.com\/2015-11-11\/14346833313_f359ba59a1211d17912b_512.jpg","image_1024":"https:\/\/avatars.slack-edge.com\/2015-11-11\/14346833313_f359ba59a1211d17912b_512.jpg","status_text_canonical":"","team":"T04KB5WQH"},"is_bot":true,"is_app_user":false,"updated":1504224758},{"id":"U0GPR6KDJ","team_id":"T04KB5WQH","name":"slackbotserver","deleted":true,"profile":{"title":"","phone":"","skype":"","real_name":"slack-ruby-bot-server","real_name_normalized":"slack-ruby-bot-server","display_name":"slackbotserver","display_name_normalized":"slackbotserver","fields":null,"status_text":"","status_emoji":"","status_emoji_display_info":[],"status_expiration":0,"avatar_hash":"gf3834829d1e","api_app_id":"A0GPRTG9Z","bot_id":"B0GPWQWHY","first_name":"slack-ruby-bot-server","image_24":"https:\/\/secure.gravatar.com\/avatar\/36f3834829d1ec429f7d6acebccc7641.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0008-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/36f3834829d1ec429f7d6acebccc7641.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0008-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/36f3834829d1ec429f7d6acebccc7641.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0008-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/36f3834829d1ec429f7d6acebccc7641.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0008-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/36f3834829d1ec429f7d6acebccc7641.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0008-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/36f3834829d1ec429f7d6acebccc7641.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0008-512.png","status_text_canonical":"","team":"T04KB5WQH"},"is_bot":true,"is_app_user":false,"updated":1605531588},{"id":"U0H15MV1R","team_id":"T04KB5WQH","name":"pongbot","deleted":true,"profile":{"title":"","phone":"","skype":"","real_name":"PlayPlay.io
93
- - Ping-Pong for Slack","real_name_normalized":"PlayPlay.io - Ping-Pong for
94
- Slack","display_name":"pongbot","display_name_normalized":"pongbot","fields":null,"status_text":"","status_emoji":"","status_emoji_display_info":[],"status_expiration":0,"avatar_hash":"bfc0baddb5a2","api_app_id":"A0H0ZJHP0","image_original":"https:\/\/avatars.slack-edge.com\/2016-06-19\/52297978466_bfc0baddb5a2d42da036_original.png","is_custom_image":true,"bot_id":"B0H184MLZ","first_name":"PlayPlay.io
95
- - Ping-Pong for Slack","image_24":"https:\/\/avatars.slack-edge.com\/2016-06-19\/52297978466_bfc0baddb5a2d42da036_24.png","image_32":"https:\/\/avatars.slack-edge.com\/2016-06-19\/52297978466_bfc0baddb5a2d42da036_32.png","image_48":"https:\/\/avatars.slack-edge.com\/2016-06-19\/52297978466_bfc0baddb5a2d42da036_48.png","image_72":"https:\/\/avatars.slack-edge.com\/2016-06-19\/52297978466_bfc0baddb5a2d42da036_72.png","image_192":"https:\/\/avatars.slack-edge.com\/2016-06-19\/52297978466_bfc0baddb5a2d42da036_192.png","image_512":"https:\/\/avatars.slack-edge.com\/2016-06-19\/52297978466_bfc0baddb5a2d42da036_512.png","image_1024":"https:\/\/avatars.slack-edge.com\/2016-06-19\/52297978466_bfc0baddb5a2d42da036_512.png","status_text_canonical":"","team":"T04KB5WQH"},"is_bot":true,"is_app_user":false,"updated":1557890817},{"id":"U0H701CJZ","team_id":"T04KB5WQH","name":"chessbot","deleted":true,"profile":{"title":"","phone":"","skype":"","real_name":"PlayPlay.io
96
- - Chess for Slack","real_name_normalized":"PlayPlay.io - Chess for Slack","display_name":"chessbot","display_name_normalized":"chessbot","fields":null,"status_text":"","status_emoji":"","status_emoji_display_info":[],"status_expiration":0,"avatar_hash":"8f99e84480d6","api_app_id":"A0H70N5C3","image_original":"https:\/\/avatars.slack-edge.com\/2016-06-19\/52298008610_8f99e84480d6baed1771_original.png","is_custom_image":true,"bot_id":"B0H74MK3J","first_name":"PlayPlay.io
97
- - Chess for Slack","image_24":"https:\/\/avatars.slack-edge.com\/2016-06-19\/52298008610_8f99e84480d6baed1771_24.png","image_32":"https:\/\/avatars.slack-edge.com\/2016-06-19\/52298008610_8f99e84480d6baed1771_32.png","image_48":"https:\/\/avatars.slack-edge.com\/2016-06-19\/52298008610_8f99e84480d6baed1771_48.png","image_72":"https:\/\/avatars.slack-edge.com\/2016-06-19\/52298008610_8f99e84480d6baed1771_72.png","image_192":"https:\/\/avatars.slack-edge.com\/2016-06-19\/52298008610_8f99e84480d6baed1771_192.png","image_512":"https:\/\/avatars.slack-edge.com\/2016-06-19\/52298008610_8f99e84480d6baed1771_512.png","image_1024":"https:\/\/avatars.slack-edge.com\/2016-06-19\/52298008610_8f99e84480d6baed1771_512.png","status_text_canonical":"","team":"T04KB5WQH"},"is_bot":true,"is_app_user":false,"updated":1547581425},{"id":"U0HC7MSEA","team_id":"T04KB5WQH","name":"poolbot","deleted":true,"profile":{"title":"","phone":"","skype":"","real_name":"PlayPlay.io
98
- - Billiards for Slack","real_name_normalized":"PlayPlay.io - Billiards for
99
- Slack","display_name":"poolbot","display_name_normalized":"poolbot","fields":null,"status_text":"","status_emoji":"","status_emoji_display_info":[],"status_expiration":0,"avatar_hash":"c95d3eeede11","api_app_id":"A0HC74EET","image_original":"https:\/\/avatars.slack-edge.com\/2016-06-19\/52283120304_c95d3eeede11f766a974_original.png","is_custom_image":true,"bot_id":"B0HC7D1SN","first_name":"PlayPlay.io
100
- - Billiards for Slack","image_24":"https:\/\/avatars.slack-edge.com\/2016-06-19\/52283120304_c95d3eeede11f766a974_24.png","image_32":"https:\/\/avatars.slack-edge.com\/2016-06-19\/52283120304_c95d3eeede11f766a974_32.png","image_48":"https:\/\/avatars.slack-edge.com\/2016-06-19\/52283120304_c95d3eeede11f766a974_48.png","image_72":"https:\/\/avatars.slack-edge.com\/2016-06-19\/52283120304_c95d3eeede11f766a974_72.png","image_192":"https:\/\/avatars.slack-edge.com\/2016-06-19\/52283120304_c95d3eeede11f766a974_192.png","image_512":"https:\/\/avatars.slack-edge.com\/2016-06-19\/52283120304_c95d3eeede11f766a974_512.png","image_1024":"https:\/\/avatars.slack-edge.com\/2016-06-19\/52283120304_c95d3eeede11f766a974_512.png","status_text_canonical":"","team":"T04KB5WQH"},"is_bot":true,"is_app_user":false,"updated":1547581419},{"id":"U0HF43KT7","team_id":"T04KB5WQH","name":"tictactoe","deleted":true,"profile":{"title":"","phone":"","skype":"","real_name":"PlayPlay.io
101
- - Tic-Tac-Toe for Slack","real_name_normalized":"PlayPlay.io - Tic-Tac-Toe
102
- for Slack","display_name":"tictactoe","display_name_normalized":"tictactoe","fields":null,"status_text":"","status_emoji":"","status_emoji_display_info":[],"status_expiration":0,"avatar_hash":"4a2b920dbea1","api_app_id":"A0HF3E0AH","image_original":"https:\/\/avatars.slack-edge.com\/2016-06-19\/52238814435_4a2b920dbea1335fd188_original.png","is_custom_image":true,"bot_id":"B0HF56491","first_name":"PlayPlay.io
103
- - Tic-Tac-Toe for Slack","image_24":"https:\/\/avatars.slack-edge.com\/2016-06-19\/52238814435_4a2b920dbea1335fd188_24.png","image_32":"https:\/\/avatars.slack-edge.com\/2016-06-19\/52238814435_4a2b920dbea1335fd188_32.png","image_48":"https:\/\/avatars.slack-edge.com\/2016-06-19\/52238814435_4a2b920dbea1335fd188_48.png","image_72":"https:\/\/avatars.slack-edge.com\/2016-06-19\/52238814435_4a2b920dbea1335fd188_72.png","image_192":"https:\/\/avatars.slack-edge.com\/2016-06-19\/52238814435_4a2b920dbea1335fd188_192.png","image_512":"https:\/\/avatars.slack-edge.com\/2016-06-19\/52238814435_4a2b920dbea1335fd188_512.png","image_1024":"https:\/\/avatars.slack-edge.com\/2016-06-19\/52238814435_4a2b920dbea1335fd188_512.png","status_text_canonical":"","team":"T04KB5WQH"},"is_bot":true,"is_app_user":false,"updated":1547581403},{"id":"U0HLFUZLJ","team_id":"T04KB5WQH","name":"player1","deleted":false,"color":"d58247","real_name":"Player
104
- 1","tz":"America\/Indiana\/Indianapolis","tz_label":"Eastern Standard Time","tz_offset":-18000,"profile":{"title":"","phone":"","skype":"","real_name":"Player
105
- 1","real_name_normalized":"Player 1","display_name":"player1","display_name_normalized":"player1","fields":null,"status_text":"","status_emoji":"","status_emoji_display_info":[],"status_expiration":0,"avatar_hash":"ge4e1137364c","email":"dblock+player1@dblock.org","first_name":"Player","last_name":"1","image_24":"https:\/\/secure.gravatar.com\/avatar\/cde4e1137364cf971f15160113b04e86.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0009-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/cde4e1137364cf971f15160113b04e86.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0009-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/cde4e1137364cf971f15160113b04e86.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0009-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/cde4e1137364cf971f15160113b04e86.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0009-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/cde4e1137364cf971f15160113b04e86.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0009-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/cde4e1137364cf971f15160113b04e86.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0009-512.png","status_text_canonical":"","team":"T04KB5WQH"},"is_admin":false,"is_owner":false,"is_primary_owner":false,"is_restricted":false,"is_ultra_restricted":false,"is_bot":false,"is_app_user":false,"updated":1569143041,"is_email_confirmed":true,"who_can_share_contact_card":"EVERYONE"},{"id":"U0HPMN0GY","team_id":"T04KB5WQH","name":"slak","deleted":true,"profile":{"title":"","phone":"","skype":"","real_name":"API
106
- Explorer","real_name_normalized":"API Explorer","display_name":"slak","display_name_normalized":"slak","fields":null,"status_text":"","status_emoji":"","status_emoji_display_info":[],"status_expiration":0,"avatar_hash":"36be3c0d4513","api_app_id":"A0HP7340N","image_original":"https:\/\/avatars.slack-edge.com\/2016-01-21\/19073458786_36be3c0d451350c9f03b_original.png","is_custom_image":true,"bot_id":"B0HPLG4M7","first_name":"API
107
- Explorer","image_24":"https:\/\/avatars.slack-edge.com\/2016-01-21\/19073458786_36be3c0d451350c9f03b_24.png","image_32":"https:\/\/avatars.slack-edge.com\/2016-01-21\/19073458786_36be3c0d451350c9f03b_32.png","image_48":"https:\/\/avatars.slack-edge.com\/2016-01-21\/19073458786_36be3c0d451350c9f03b_48.png","image_72":"https:\/\/avatars.slack-edge.com\/2016-01-21\/19073458786_36be3c0d451350c9f03b_72.png","image_192":"https:\/\/avatars.slack-edge.com\/2016-01-21\/19073458786_36be3c0d451350c9f03b_192.png","image_512":"https:\/\/avatars.slack-edge.com\/2016-01-21\/19073458786_36be3c0d451350c9f03b_512.png","image_1024":"https:\/\/avatars.slack-edge.com\/2016-01-21\/19073458786_36be3c0d451350c9f03b_512.png","status_text_canonical":"","team":"T04KB5WQH"},"is_bot":true,"is_app_user":false,"updated":1504224786},{"id":"U0J1GAHN1","team_id":"T04KB5WQH","name":"travis-ci","deleted":false,"color":"5a4592","real_name":"travis-ci","tz":"America\/Los_Angeles","tz_label":"Pacific
108
- Standard Time","tz_offset":-28800,"profile":{"title":"Used for Travis-CI integration
109
- tests on https:\/\/github.com\/dblock\/slack-ruby-client.","phone":"","skype":"","real_name":"travis-ci","real_name_normalized":"travis-ci","display_name":"","display_name_normalized":"","fields":null,"status_text":"","status_emoji":"","status_emoji_display_info":[],"status_expiration":0,"avatar_hash":"dd0191970c25","api_app_id":"","image_original":"https:\/\/avatars.slack-edge.com\/2016-01-08\/18054871664_dd0191970c25e54ef23f_original.png","is_custom_image":true,"bot_id":"B0J1L75DY","image_24":"https:\/\/avatars.slack-edge.com\/2016-01-08\/18054871664_dd0191970c25e54ef23f_24.png","image_32":"https:\/\/avatars.slack-edge.com\/2016-01-08\/18054871664_dd0191970c25e54ef23f_32.png","image_48":"https:\/\/avatars.slack-edge.com\/2016-01-08\/18054871664_dd0191970c25e54ef23f_48.png","image_72":"https:\/\/avatars.slack-edge.com\/2016-01-08\/18054871664_dd0191970c25e54ef23f_72.png","image_192":"https:\/\/avatars.slack-edge.com\/2016-01-08\/18054871664_dd0191970c25e54ef23f_192.png","image_512":"https:\/\/avatars.slack-edge.com\/2016-01-08\/18054871664_dd0191970c25e54ef23f_512.png","image_1024":"https:\/\/avatars.slack-edge.com\/2016-01-08\/18054871664_dd0191970c25e54ef23f_512.png","status_text_canonical":"","team":"T04KB5WQH"},"is_admin":false,"is_owner":false,"is_primary_owner":false,"is_restricted":false,"is_ultra_restricted":false,"is_bot":true,"is_app_user":false,"updated":1504224788,"is_email_confirmed":false,"who_can_share_contact_card":"EVERYONE"},{"id":"U0LAVPSLF","team_id":"T04KB5WQH","name":"market","deleted":false,"color":"db3150","real_name":"Market","tz":"America\/Los_Angeles","tz_label":"Pacific
110
- Standard Time","tz_offset":-28800,"profile":{"title":"","phone":"","skype":"","real_name":"Market","real_name_normalized":"Market","display_name":"market","display_name_normalized":"market","fields":null,"status_text":"","status_emoji":"","status_emoji_display_info":[],"status_expiration":0,"avatar_hash":"522645c5607a","api_app_id":"A0LAU0998","image_original":"https:\/\/avatars.slack-edge.com\/2016-06-12\/50217631700_522645c5607acc032c6f_original.png","is_custom_image":true,"bot_id":"B0LAPCFT6","first_name":"Market","image_24":"https:\/\/avatars.slack-edge.com\/2016-06-12\/50217631700_522645c5607acc032c6f_24.png","image_32":"https:\/\/avatars.slack-edge.com\/2016-06-12\/50217631700_522645c5607acc032c6f_32.png","image_48":"https:\/\/avatars.slack-edge.com\/2016-06-12\/50217631700_522645c5607acc032c6f_48.png","image_72":"https:\/\/avatars.slack-edge.com\/2016-06-12\/50217631700_522645c5607acc032c6f_72.png","image_192":"https:\/\/avatars.slack-edge.com\/2016-06-12\/50217631700_522645c5607acc032c6f_192.png","image_512":"https:\/\/avatars.slack-edge.com\/2016-06-12\/50217631700_522645c5607acc032c6f_512.png","image_1024":"https:\/\/avatars.slack-edge.com\/2016-06-12\/50217631700_522645c5607acc032c6f_512.png","status_text_canonical":"","team":"T04KB5WQH"},"is_admin":false,"is_owner":false,"is_primary_owner":false,"is_restricted":false,"is_ultra_restricted":false,"is_bot":true,"is_app_user":false,"updated":1504224809,"is_email_confirmed":false,"who_can_share_contact_card":"EVERYONE"},{"id":"U0RU32XGB","team_id":"T04KB5WQH","name":"demo_app","deleted":true,"profile":{"title":"","phone":"","skype":"","real_name":"Demo
111
- App","real_name_normalized":"Demo App","display_name":"demo_app","display_name_normalized":"demo_app","fields":null,"status_text":"","status_emoji":"","status_emoji_display_info":[],"status_expiration":0,"avatar_hash":"g0eaf566ca84","api_app_id":"A0S05U5H7","bot_id":"B0S04SHFX","first_name":"Demo
112
- App","image_24":"https:\/\/secure.gravatar.com\/avatar\/470eaf566ca842e4c7a2a6113aaabeff.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0006-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/470eaf566ca842e4c7a2a6113aaabeff.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0006-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/470eaf566ca842e4c7a2a6113aaabeff.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0006-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/470eaf566ca842e4c7a2a6113aaabeff.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0006-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/470eaf566ca842e4c7a2a6113aaabeff.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0006-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/470eaf566ca842e4c7a2a6113aaabeff.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0006-512.png","status_text_canonical":"","team":"T04KB5WQH"},"is_bot":true,"is_app_user":false,"updated":1569143041},{"id":"U0S0G028K","team_id":"T04KB5WQH","name":"demofoo","deleted":true,"profile":{"title":"","phone":"","skype":"","real_name":"Demo
113
- App","real_name_normalized":"Demo App","display_name":"demofoo","display_name_normalized":"demofoo","fields":null,"status_text":"","status_emoji":"","status_emoji_display_info":[],"status_expiration":0,"avatar_hash":"gf909dc801e9","api_app_id":"A0S212AD7","bot_id":"B0S21UP2L","first_name":"Demo
114
- App","image_24":"https:\/\/secure.gravatar.com\/avatar\/7ff909dc801e9b78da70deb57d6a9548.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0023-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/7ff909dc801e9b78da70deb57d6a9548.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0023-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/7ff909dc801e9b78da70deb57d6a9548.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0023-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/7ff909dc801e9b78da70deb57d6a9548.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0023-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/7ff909dc801e9b78da70deb57d6a9548.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0023-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/7ff909dc801e9b78da70deb57d6a9548.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0023-512.png","status_text_canonical":"","team":"T04KB5WQH"},"is_bot":true,"is_app_user":false,"updated":1569143041},{"id":"U6HMJSC01","team_id":"T04KB5WQH","name":"test_app","deleted":false,"color":"53b759","real_name":"test_app","tz":"America\/Los_Angeles","tz_label":"Pacific
115
- Standard Time","tz_offset":-28800,"profile":{"title":"","phone":"","skype":"","real_name":"test_app","real_name_normalized":"test_app","display_name":"test_app","display_name_normalized":"test_app","fields":null,"status_text":"","status_emoji":"","status_emoji_display_info":[],"status_expiration":0,"avatar_hash":"g0010e14ef43","api_app_id":"A19GAJ72T","always_active":false,"bot_id":"B6KAQDLCF","first_name":"test_app","last_name":"","image_24":"https:\/\/secure.gravatar.com\/avatar\/620010e14ef438a65db182bd767da3bc.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0006-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/620010e14ef438a65db182bd767da3bc.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0006-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/620010e14ef438a65db182bd767da3bc.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0006-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/620010e14ef438a65db182bd767da3bc.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0006-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/620010e14ef438a65db182bd767da3bc.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0006-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/620010e14ef438a65db182bd767da3bc.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0006-512.png","status_text_canonical":"","team":"T04KB5WQH"},"is_admin":false,"is_owner":false,"is_primary_owner":false,"is_restricted":false,"is_ultra_restricted":false,"is_bot":true,"is_app_user":false,"updated":1585402202,"is_email_confirmed":false,"who_can_share_contact_card":"EVERYONE"},{"id":"U6QNX3JR5","team_id":"T04KB5WQH","name":"dblockplayplay","deleted":false,"color":"c386df","real_name":"Daniel
116
- Play","tz":"America\/New_York","tz_label":"Eastern Standard Time","tz_offset":-18000,"profile":{"title":"","phone":"","skype":"","real_name":"Daniel
117
- Play","real_name_normalized":"Daniel Play","display_name":"dblockplayplay","display_name_normalized":"dblockplayplay","fields":null,"status_text":"","status_emoji":"","status_emoji_display_info":[],"status_expiration":0,"avatar_hash":"gc348670516c","email":"dblock+playplay@dblock.org","first_name":"Daniel","last_name":"Play","image_24":"https:\/\/secure.gravatar.com\/avatar\/edc348670516c40654a171bdc09709b1.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0003-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/edc348670516c40654a171bdc09709b1.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0003-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/edc348670516c40654a171bdc09709b1.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0003-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/edc348670516c40654a171bdc09709b1.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0003-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/edc348670516c40654a171bdc09709b1.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0003-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/edc348670516c40654a171bdc09709b1.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0003-512.png","status_text_canonical":"","team":"T04KB5WQH"},"is_admin":false,"is_owner":false,"is_primary_owner":false,"is_restricted":false,"is_ultra_restricted":false,"is_bot":false,"is_app_user":false,"updated":1569143042,"is_email_confirmed":true,"who_can_share_contact_card":"EVERYONE"},{"id":"UJJ05P001","team_id":"T04KB5WQH","name":"invitebot","deleted":false,"color":"385a86","real_name":"Invite
118
- Bot","tz":"America\/Los_Angeles","tz_label":"Pacific Standard Time","tz_offset":-28800,"profile":{"title":"","phone":"","skype":"","real_name":"Invite
119
- Bot","real_name_normalized":"Invite Bot","display_name":"","display_name_normalized":"","fields":null,"status_text":"","status_emoji":"","status_emoji_display_info":[],"status_expiration":0,"avatar_hash":"0e71f465eb8d","api_app_id":"AJPPFAS6R","always_active":false,"image_original":"https:\/\/avatars.slack-edge.com\/2019-05-15\/630005808305_0e71f465eb8df65d10cd_original.png","is_custom_image":true,"bot_id":"BJS5B5DHV","image_24":"https:\/\/avatars.slack-edge.com\/2019-05-15\/630005808305_0e71f465eb8df65d10cd_24.png","image_32":"https:\/\/avatars.slack-edge.com\/2019-05-15\/630005808305_0e71f465eb8df65d10cd_32.png","image_48":"https:\/\/avatars.slack-edge.com\/2019-05-15\/630005808305_0e71f465eb8df65d10cd_48.png","image_72":"https:\/\/avatars.slack-edge.com\/2019-05-15\/630005808305_0e71f465eb8df65d10cd_72.png","image_192":"https:\/\/avatars.slack-edge.com\/2019-05-15\/630005808305_0e71f465eb8df65d10cd_192.png","image_512":"https:\/\/avatars.slack-edge.com\/2019-05-15\/630005808305_0e71f465eb8df65d10cd_512.png","image_1024":"https:\/\/avatars.slack-edge.com\/2019-05-15\/630005808305_0e71f465eb8df65d10cd_1024.png","status_text_canonical":"","team":"T04KB5WQH"},"is_admin":false,"is_owner":false,"is_primary_owner":false,"is_restricted":false,"is_ultra_restricted":false,"is_bot":true,"is_app_user":false,"updated":1557929990,"is_email_confirmed":false,"who_can_share_contact_card":"EVERYONE"},{"id":"UPD8Z27LZ","team_id":"T04KB5WQH","name":"dblock_test","deleted":false,"color":"50a0cf","real_name":"dblock","tz":"America\/New_York","tz_label":"Eastern
120
- Standard Time","tz_offset":-18000,"profile":{"title":"","phone":"","skype":"","real_name":"dblock","real_name_normalized":"dblock","display_name":"","display_name_normalized":"","fields":null,"status_text":"","status_emoji":"","status_emoji_display_info":[],"status_expiration":0,"avatar_hash":"g4091e4ec0e2","email":"dblock+test@dblock.org","first_name":"","last_name":"","image_24":"https:\/\/secure.gravatar.com\/avatar\/4091e4ec0e225350e60651785e067949.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0005-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/4091e4ec0e225350e60651785e067949.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0005-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/4091e4ec0e225350e60651785e067949.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0005-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/4091e4ec0e225350e60651785e067949.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0005-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/4091e4ec0e225350e60651785e067949.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0005-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/4091e4ec0e225350e60651785e067949.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0005-512.png","status_text_canonical":"","team":"T04KB5WQH"},"is_admin":false,"is_owner":false,"is_primary_owner":false,"is_restricted":false,"is_ultra_restricted":false,"is_bot":false,"is_app_user":false,"updated":1571509015,"is_email_confirmed":false,"who_can_share_contact_card":"EVERYONE","is_invited_user":true},{"id":"UPD8Z2E3T","team_id":"T04KB5WQH","name":"dblock_test1","deleted":false,"color":"d55aef","real_name":"dblock","tz":"America\/New_York","tz_label":"Eastern
121
- Standard Time","tz_offset":-18000,"profile":{"title":"","phone":"","skype":"","real_name":"dblock","real_name_normalized":"dblock","display_name":"","display_name_normalized":"","fields":null,"status_text":"","status_emoji":"","status_emoji_display_info":[],"status_expiration":0,"avatar_hash":"gef27de052f5","email":"dblock+test1@dblock.org","first_name":"","last_name":"","image_24":"https:\/\/secure.gravatar.com\/avatar\/ef27de052f5cdb250ce54fbbe6cf41bd.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0022-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/ef27de052f5cdb250ce54fbbe6cf41bd.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0022-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/ef27de052f5cdb250ce54fbbe6cf41bd.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0022-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/ef27de052f5cdb250ce54fbbe6cf41bd.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0022-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/ef27de052f5cdb250ce54fbbe6cf41bd.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0022-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/ef27de052f5cdb250ce54fbbe6cf41bd.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0022-512.png","status_text_canonical":"","team":"T04KB5WQH"},"is_admin":false,"is_owner":false,"is_primary_owner":false,"is_restricted":false,"is_ultra_restricted":false,"is_bot":false,"is_app_user":false,"updated":1571509017,"is_email_confirmed":false,"who_can_share_contact_card":"EVERYONE","is_invited_user":true},{"id":"UPK86E6P6","team_id":"T04KB5WQH","name":"dblock_2","deleted":false,"color":"ea2977","real_name":"dblock","tz":"America\/New_York","tz_label":"Eastern
122
- Standard Time","tz_offset":-18000,"profile":{"title":"","phone":"","skype":"","real_name":"dblock","real_name_normalized":"dblock","display_name":"","display_name_normalized":"","fields":null,"status_text":"","status_emoji":"","status_emoji_display_info":[],"status_expiration":0,"avatar_hash":"gba73bd6b8ec","email":"dblock+2@dblock.org","first_name":"","last_name":"","image_24":"https:\/\/secure.gravatar.com\/avatar\/ba73bd6b8ec4c7a2a1062e4340d3d289.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0001-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/ba73bd6b8ec4c7a2a1062e4340d3d289.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0001-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/ba73bd6b8ec4c7a2a1062e4340d3d289.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0001-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/ba73bd6b8ec4c7a2a1062e4340d3d289.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0001-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/ba73bd6b8ec4c7a2a1062e4340d3d289.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0001-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/ba73bd6b8ec4c7a2a1062e4340d3d289.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0001-512.png","status_text_canonical":"","team":"T04KB5WQH"},"is_admin":false,"is_owner":false,"is_primary_owner":false,"is_restricted":false,"is_ultra_restricted":false,"is_bot":false,"is_app_user":false,"updated":1571509014,"is_email_confirmed":false,"who_can_share_contact_card":"EVERYONE","is_invited_user":true},{"id":"UPKN2L3E1","team_id":"T04KB5WQH","name":"dblock_6","deleted":false,"color":"a63024","real_name":"dblock","tz":"America\/New_York","tz_label":"Eastern
123
- Standard Time","tz_offset":-18000,"profile":{"title":"","phone":"","skype":"","real_name":"dblock","real_name_normalized":"dblock","display_name":"","display_name_normalized":"","fields":null,"status_text":"","status_emoji":"","status_emoji_display_info":[],"status_expiration":0,"avatar_hash":"g52a8bba00a0","email":"dblock+6@dblock.org","first_name":"","last_name":"","image_24":"https:\/\/secure.gravatar.com\/avatar\/52a8bba00a0487dfde01fe44facc8881.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0026-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/52a8bba00a0487dfde01fe44facc8881.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0026-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/52a8bba00a0487dfde01fe44facc8881.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0026-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/52a8bba00a0487dfde01fe44facc8881.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0026-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/52a8bba00a0487dfde01fe44facc8881.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0026-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/52a8bba00a0487dfde01fe44facc8881.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0026-512.png","status_text_canonical":"","team":"T04KB5WQH"},"is_admin":false,"is_owner":false,"is_primary_owner":false,"is_restricted":false,"is_ultra_restricted":false,"is_bot":false,"is_app_user":false,"updated":1571509011,"is_email_confirmed":false,"who_can_share_contact_card":"EVERYONE","is_invited_user":true},{"id":"UPMTZMJTY","team_id":"T04KB5WQH","name":"dblock_3","deleted":false,"color":"5870dd","real_name":"dblock","tz":"America\/New_York","tz_label":"Eastern
124
- Standard Time","tz_offset":-18000,"profile":{"title":"","phone":"","skype":"","real_name":"dblock","real_name_normalized":"dblock","display_name":"","display_name_normalized":"","fields":null,"status_text":"","status_emoji":"","status_emoji_display_info":[],"status_expiration":0,"avatar_hash":"g59cffe92576","email":"dblock+3@dblock.org","first_name":"","last_name":"","image_24":"https:\/\/secure.gravatar.com\/avatar\/59cffe925768b386639fc84bd3f4b781.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0008-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/59cffe925768b386639fc84bd3f4b781.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0008-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/59cffe925768b386639fc84bd3f4b781.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0008-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/59cffe925768b386639fc84bd3f4b781.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0008-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/59cffe925768b386639fc84bd3f4b781.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0008-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/59cffe925768b386639fc84bd3f4b781.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0008-512.png","status_text_canonical":"","team":"T04KB5WQH"},"is_admin":false,"is_owner":false,"is_primary_owner":false,"is_restricted":false,"is_ultra_restricted":false,"is_bot":false,"is_app_user":false,"updated":1571509013,"is_email_confirmed":false,"who_can_share_contact_card":"EVERYONE","is_invited_user":true},{"id":"U011Z08R6B1","team_id":"T04KB5WQH","name":"dblock_example2","deleted":false,"color":"43761b","real_name":"dblock","tz":"America\/New_York","tz_label":"Eastern
125
- Standard Time","tz_offset":-18000,"profile":{"title":"","phone":"","skype":"","real_name":"dblock","real_name_normalized":"dblock","display_name":"","display_name_normalized":"","fields":null,"status_text":"","status_emoji":"","status_emoji_display_info":[],"status_expiration":0,"avatar_hash":"g8647841651f","email":"dblock+example2@dblock.org","image_24":"https:\/\/secure.gravatar.com\/avatar\/8647841651f8212201a44dab1e14f010.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0016-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/8647841651f8212201a44dab1e14f010.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0016-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/8647841651f8212201a44dab1e14f010.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0016-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/8647841651f8212201a44dab1e14f010.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0016-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/8647841651f8212201a44dab1e14f010.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0016-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/8647841651f8212201a44dab1e14f010.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0016-512.png","status_text_canonical":"","team":"T04KB5WQH"},"is_admin":false,"is_owner":false,"is_primary_owner":false,"is_restricted":false,"is_ultra_restricted":false,"is_bot":false,"is_app_user":false,"updated":1587650583,"is_email_confirmed":false,"who_can_share_contact_card":"EVERYONE","is_invited_user":true},{"id":"U012SA9KW4R","team_id":"T04KB5WQH","name":"dblock_example","deleted":false,"color":"d1707d","real_name":"dblock","tz":"America\/New_York","tz_label":"Eastern
126
- Standard Time","tz_offset":-18000,"profile":{"title":"","phone":"","skype":"","real_name":"dblock","real_name_normalized":"dblock","display_name":"","display_name_normalized":"","fields":null,"status_text":"","status_emoji":"","status_emoji_display_info":[],"status_expiration":0,"avatar_hash":"ga6aec5133db","email":"dblock+example@dblock.org","image_24":"https:\/\/secure.gravatar.com\/avatar\/a6aec5133db996586c61e49a0d791e23.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/a6aec5133db996586c61e49a0d791e23.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/a6aec5133db996586c61e49a0d791e23.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/a6aec5133db996586c61e49a0d791e23.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/a6aec5133db996586c61e49a0d791e23.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/a6aec5133db996586c61e49a0d791e23.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0000-512.png","status_text_canonical":"","team":"T04KB5WQH"},"is_admin":false,"is_owner":false,"is_primary_owner":false,"is_restricted":false,"is_ultra_restricted":false,"is_bot":false,"is_app_user":false,"updated":1587650286,"is_email_confirmed":false,"who_can_share_contact_card":"EVERYONE","is_invited_user":true},{"id":"U0174H9SZR7","team_id":"T04KB5WQH","name":"slava-bot","deleted":false,"color":"e06b56","real_name":"slava","tz":"America\/Los_Angeles","tz_label":"Pacific
127
- Standard Time","tz_offset":-28800,"profile":{"title":"","phone":"","skype":"","real_name":"slava","real_name_normalized":"slava","display_name":"","display_name_normalized":"","fields":null,"status_text":"","status_emoji":"","status_emoji_display_info":[],"status_expiration":0,"avatar_hash":"16fecd69d862","api_app_id":"A9XS1443S","always_active":false,"image_original":"https:\/\/avatars.slack-edge.com\/2021-06-17\/2185657550866_16fecd69d862b7eebc1b_original.jpg","is_custom_image":true,"bot_id":"B016B6GGRLP","first_name":"slava","last_name":"","image_24":"https:\/\/avatars.slack-edge.com\/2021-06-17\/2185657550866_16fecd69d862b7eebc1b_24.jpg","image_32":"https:\/\/avatars.slack-edge.com\/2021-06-17\/2185657550866_16fecd69d862b7eebc1b_32.jpg","image_48":"https:\/\/avatars.slack-edge.com\/2021-06-17\/2185657550866_16fecd69d862b7eebc1b_48.jpg","image_72":"https:\/\/avatars.slack-edge.com\/2021-06-17\/2185657550866_16fecd69d862b7eebc1b_72.jpg","image_192":"https:\/\/avatars.slack-edge.com\/2021-06-17\/2185657550866_16fecd69d862b7eebc1b_192.jpg","image_512":"https:\/\/avatars.slack-edge.com\/2021-06-17\/2185657550866_16fecd69d862b7eebc1b_512.jpg","image_1024":"https:\/\/avatars.slack-edge.com\/2021-06-17\/2185657550866_16fecd69d862b7eebc1b_1024.jpg","status_text_canonical":"","team":"T04KB5WQH"},"is_admin":false,"is_owner":false,"is_primary_owner":false,"is_restricted":false,"is_ultra_restricted":false,"is_bot":true,"is_app_user":false,"updated":1623977812,"is_email_confirmed":false,"who_can_share_contact_card":"EVERYONE"},{"id":"U01EC0JKFPZ","team_id":"T04KB5WQH","name":"sh2-x","deleted":true,"profile":{"title":"","phone":"","skype":"","real_name":"shell","real_name_normalized":"shell","display_name":"","display_name_normalized":"","fields":null,"status_text":"","status_emoji":"","status_emoji_display_info":[],"status_expiration":0,"avatar_hash":"88c23204862c","api_app_id":"A0HU20FCG","always_active":false,"image_original":"https:\/\/avatars.slack-edge.com\/2020-11-15\/1502965856291_88c23204862cf59bfcc1_original.png","is_custom_image":true,"bot_id":"B01EYT3K9LL","image_24":"https:\/\/avatars.slack-edge.com\/2020-11-15\/1502965856291_88c23204862cf59bfcc1_24.png","image_32":"https:\/\/avatars.slack-edge.com\/2020-11-15\/1502965856291_88c23204862cf59bfcc1_32.png","image_48":"https:\/\/avatars.slack-edge.com\/2020-11-15\/1502965856291_88c23204862cf59bfcc1_48.png","image_72":"https:\/\/avatars.slack-edge.com\/2020-11-15\/1502965856291_88c23204862cf59bfcc1_72.png","image_192":"https:\/\/avatars.slack-edge.com\/2020-11-15\/1502965856291_88c23204862cf59bfcc1_192.png","image_512":"https:\/\/avatars.slack-edge.com\/2020-11-15\/1502965856291_88c23204862cf59bfcc1_512.png","image_1024":"https:\/\/avatars.slack-edge.com\/2020-11-15\/1502965856291_88c23204862cf59bfcc1_1024.png","status_text_canonical":"","team":"T04KB5WQH"},"is_bot":true,"is_app_user":false,"updated":1606511282},{"id":"U01ED8JS8BH","team_id":"T04KB5WQH","name":"test_app_v2","deleted":false,"color":"902d59","real_name":"Test
128
- App v2","tz":"America\/Los_Angeles","tz_label":"Pacific Standard Time","tz_offset":-28800,"profile":{"title":"","phone":"","skype":"","real_name":"Test
129
- App v2","real_name_normalized":"Test App v2","display_name":"","display_name_normalized":"","fields":null,"status_text":"","status_emoji":"","status_emoji_display_info":[],"status_expiration":0,"avatar_hash":"g13f1a003782","api_app_id":"A01FHPEUR16","always_active":false,"bot_id":"B01F05PT7D2","image_24":"https:\/\/secure.gravatar.com\/avatar\/13f1a0037821ab0a0ff597479408dddd.jpg?s=24&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0014-24.png","image_32":"https:\/\/secure.gravatar.com\/avatar\/13f1a0037821ab0a0ff597479408dddd.jpg?s=32&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0014-32.png","image_48":"https:\/\/secure.gravatar.com\/avatar\/13f1a0037821ab0a0ff597479408dddd.jpg?s=48&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0014-48.png","image_72":"https:\/\/secure.gravatar.com\/avatar\/13f1a0037821ab0a0ff597479408dddd.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0014-72.png","image_192":"https:\/\/secure.gravatar.com\/avatar\/13f1a0037821ab0a0ff597479408dddd.jpg?s=192&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0014-192.png","image_512":"https:\/\/secure.gravatar.com\/avatar\/13f1a0037821ab0a0ff597479408dddd.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0014-512.png","status_text_canonical":"","team":"T04KB5WQH"},"is_admin":false,"is_owner":false,"is_primary_owner":false,"is_restricted":false,"is_ultra_restricted":false,"is_bot":true,"is_app_user":false,"updated":1605532101,"is_email_confirmed":false,"who_can_share_contact_card":"EVERYONE"},{"id":"U01FA6B0JM8","team_id":"T04KB5WQH","name":"shell","deleted":false,"color":"de5f24","real_name":"sh","tz":"America\/Los_Angeles","tz_label":"Pacific
130
- Standard Time","tz_offset":-28800,"profile":{"title":"","phone":"","skype":"","real_name":"sh","real_name_normalized":"sh","display_name":"","display_name_normalized":"","fields":null,"status_text":"","status_emoji":"","status_emoji_display_info":[],"status_expiration":0,"avatar_hash":"5732d1b50dac","api_app_id":"A01F73M28BF","always_active":true,"image_original":"https:\/\/avatars.slack-edge.com\/2020-11-27\/1539986896676_5732d1b50dac2ec835ad_original.png","is_custom_image":true,"bot_id":"B01G01P95JL","first_name":"sh","last_name":"","image_24":"https:\/\/avatars.slack-edge.com\/2020-11-27\/1539986896676_5732d1b50dac2ec835ad_24.png","image_32":"https:\/\/avatars.slack-edge.com\/2020-11-27\/1539986896676_5732d1b50dac2ec835ad_32.png","image_48":"https:\/\/avatars.slack-edge.com\/2020-11-27\/1539986896676_5732d1b50dac2ec835ad_48.png","image_72":"https:\/\/avatars.slack-edge.com\/2020-11-27\/1539986896676_5732d1b50dac2ec835ad_72.png","image_192":"https:\/\/avatars.slack-edge.com\/2020-11-27\/1539986896676_5732d1b50dac2ec835ad_192.png","image_512":"https:\/\/avatars.slack-edge.com\/2020-11-27\/1539986896676_5732d1b50dac2ec835ad_512.png","image_1024":"https:\/\/avatars.slack-edge.com\/2020-11-27\/1539986896676_5732d1b50dac2ec835ad_1024.png","status_text_canonical":"","team":"T04KB5WQH"},"is_admin":false,"is_owner":false,"is_primary_owner":false,"is_restricted":false,"is_ultra_restricted":false,"is_bot":true,"is_app_user":false,"updated":1606831566,"is_email_confirmed":false,"who_can_share_contact_card":"EVERYONE"},{"id":"USLACKBOT","team_id":"T04KB5WQH","name":"slackbot","deleted":false,"color":"757575","real_name":"Slackbot","tz":"America\/Los_Angeles","tz_label":"Pacific
131
- Standard Time","tz_offset":-28800,"profile":{"title":"","phone":"","skype":"","real_name":"Slackbot","real_name_normalized":"Slackbot","display_name":"Slackbot","display_name_normalized":"Slackbot","fields":null,"status_text":"","status_emoji":"","status_emoji_display_info":[],"status_expiration":0,"avatar_hash":"sv41d8cd98f0","always_active":true,"first_name":"slackbot","last_name":"","image_24":"https:\/\/a.slack-edge.com\/80588\/img\/slackbot_24.png","image_32":"https:\/\/a.slack-edge.com\/80588\/img\/slackbot_32.png","image_48":"https:\/\/a.slack-edge.com\/80588\/img\/slackbot_48.png","image_72":"https:\/\/a.slack-edge.com\/80588\/img\/slackbot_72.png","image_192":"https:\/\/a.slack-edge.com\/80588\/marketing\/img\/avatars\/slackbot\/avatar-slackbot.png","image_512":"https:\/\/a.slack-edge.com\/80588\/img\/slackbot_512.png","status_text_canonical":"","team":"T04KB5WQH"},"is_admin":false,"is_owner":false,"is_primary_owner":false,"is_restricted":false,"is_ultra_restricted":false,"is_bot":false,"is_app_user":false,"updated":0,"is_email_confirmed":false,"who_can_share_contact_card":"EVERYONE"}],"cache_ts":1638648799}'
132
- recorded_at: Sat, 19 Jan 2019 21:25:48 GMT
133
- recorded_with: VCR 6.0.0
@@ -1,83 +0,0 @@
1
- ---
2
- http_interactions:
3
- - request:
4
- method: post
5
- uri: https://slack.com/api/views.open
6
- body:
7
- encoding: UTF-8
8
- string: trigger_id=trigger_id&view=%7B%7D
9
- headers:
10
- Accept:
11
- - application/json; charset=utf-8
12
- User-Agent:
13
- - Slack Ruby Client/0.18.0
14
- Authorization:
15
- - Bearer <SLACK_API_TOKEN>
16
- Content-Type:
17
- - application/x-www-form-urlencoded
18
- Accept-Encoding:
19
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
20
- response:
21
- status:
22
- code: 200
23
- message: OK
24
- headers:
25
- Date:
26
- - Sat, 04 Dec 2021 20:13:20 GMT
27
- Server:
28
- - Apache
29
- Access-Control-Allow-Origin:
30
- - "*"
31
- Referrer-Policy:
32
- - no-referrer
33
- X-Slack-Backend:
34
- - r
35
- Strict-Transport-Security:
36
- - max-age=31536000; includeSubDomains; preload
37
- Access-Control-Allow-Headers:
38
- - slack-route, x-slack-version-ts, x-b3-traceid, x-b3-spanid, x-b3-parentspanid,
39
- x-b3-sampled, x-b3-flags
40
- Access-Control-Expose-Headers:
41
- - x-slack-req-id, retry-after
42
- X-Oauth-Scopes:
43
- - identify,read,post,client,apps
44
- Expires:
45
- - Mon, 26 Jul 1997 05:00:00 GMT
46
- Cache-Control:
47
- - private, no-cache, no-store, must-revalidate
48
- Pragma:
49
- - no-cache
50
- X-Xss-Protection:
51
- - '0'
52
- X-Content-Type-Options:
53
- - nosniff
54
- X-Slack-Req-Id:
55
- - 0215a1462c28174d87b50ee7a2c61a2d
56
- Vary:
57
- - Accept-Encoding
58
- Content-Length:
59
- - '166'
60
- Content-Type:
61
- - application/json; charset=utf-8
62
- X-Envoy-Upstream-Service-Time:
63
- - '22'
64
- X-Backend:
65
- - main_normal main_bedrock_normal_with_overflow main_canary_with_overflow main_bedrock_canary_with_overflow
66
- main_control_with_overflow main_bedrock_control_with_overflow
67
- X-Server:
68
- - slack-www-hhvm-main-iad-z2dw
69
- X-Slack-Shared-Secret-Outcome:
70
- - no-match
71
- Via:
72
- - envoy-www-iad-d0gh, envoy-edge-canary-iad-e4we
73
- X-Edge-Backend:
74
- - envoy-www
75
- X-Slack-Edge-Shared-Secret-Outcome:
76
- - no-match
77
- body:
78
- encoding: UTF-8
79
- string: '{"ok":false,"error":"invalid_arguments","response_metadata":{"messages":["[ERROR]
80
- failed to match all allowed schemas [json-pointer:\/view]","[ERROR] missing
81
- required field: type [json-pointer:\/view]"]}}'
82
- recorded_at: Sat, 19 Jan 2019 21:25:48 GMT
83
- recorded_with: VCR 6.0.0
@@ -1,207 +0,0 @@
1
- # frozen_string_literal: true
2
- require 'spec_helper'
3
-
4
- RSpec.describe 'integration test', skip: ( # rubocop:disable RSpec/DescribeClass
5
- (!ENV['SLACK_API_TOKEN'] || !ENV['CONCURRENCY']) && 'missing SLACK_API_TOKEN and/or CONCURRENCY'
6
- ) do
7
- around do |ex|
8
- WebMock.allow_net_connect!
9
- VCR.turned_off { ex.run }
10
- WebMock.disable_net_connect!
11
- end
12
-
13
- let(:client) { Slack::RealTime::Client.new(token: ENV['SLACK_API_TOKEN']) }
14
- let(:logger) do
15
- logger = Logger.new(STDOUT)
16
- logger.level = Logger::INFO
17
- logger
18
- end
19
- let!(:queue) { @queue = QueueWithTimeout.new }
20
-
21
- before do
22
- Thread.abort_on_exception = true
23
-
24
- Slack.configure do |slack|
25
- slack.logger = logger
26
- end
27
-
28
- client.on :hello do
29
- logger.info(
30
- "Successfully connected, welcome '#{client.self.name}' to " \
31
- "the '#{client.team.name}' team at https://#{client.team.domain}.slack.com."
32
- )
33
- end
34
-
35
- client.on :message do |event|
36
- logger.info " #{event.class}"
37
- end
38
-
39
- client.on :close do
40
- logger.info 'Disconnecting ...'
41
- # pushes another item to the queue when disconnected
42
- queue.push :closed
43
- end
44
- end
45
-
46
- after do
47
- Slack.config.reset
48
- wait_for_server # wait for :closed to be pushed on queue
49
- @server.join if @server.is_a?(::Thread)
50
- end
51
-
52
- def start_server
53
- dt = rand(10..20)
54
- logger.debug "#start_server, waiting #{dt} second(s)"
55
- sleep dt # prevent Slack 429 rate limit errors
56
- # starts the client and pushes an item on a queue when connected
57
- @server = client.start_async do |driver|
58
- driver.on :open do |data|
59
- logger.debug "connection.on :open, data=#{data}"
60
- queue.push :opened
61
- end
62
-
63
- driver.on :hello do |data|
64
- logger.debug "connection.on :hello, data=#{data}"
65
- end
66
- end
67
- logger.debug "started #{@server}"
68
- expect(queue.pop_with_timeout(5)).to eq :opened
69
- end
70
-
71
- def wait_for_server
72
- return unless @queue
73
-
74
- logger.debug '#wait_for_server'
75
- queue.pop_with_timeout(5)
76
- logger.debug '#wait_for_server, joined'
77
- @queue = nil
78
- end
79
-
80
- context 'client connected' do
81
- let(:channel) { "@#{client.self.id}" }
82
- let(:message) { SecureRandom.hex }
83
-
84
- it 'responds to message' do
85
- client.on :message do |data|
86
- logger.debug data
87
- # concurrent execution of tests causes messages to arrive in any order
88
- next unless data.text == message
89
-
90
- expect(data.text).to eq message
91
- expect(data.subtype).to eq 'bot_message'
92
- logger.debug 'client.stop!'
93
- expect(client.started?).to be true
94
- client.stop!
95
- end
96
-
97
- start_server
98
-
99
- logger.debug "chat_postMessage, channel=#{channel}, message=#{message}"
100
- client.web_client.chat_postMessage channel: channel, text: message
101
- end
102
-
103
- it 'sends message' do
104
- client.on :hello do
105
- expect(client.message(channel: channel, text: message)).to be true
106
- client.stop!
107
- end
108
-
109
- start_server
110
- end
111
- end
112
-
113
- it 'gets hello' do
114
- client.on :hello do |data|
115
- logger.debug "client.on :hello, data=#{data}"
116
- expect(client.started?).to be true
117
- client.stop!
118
- end
119
-
120
- start_server
121
- end
122
-
123
- context 'with websocket_ping set' do
124
- before do
125
- client.websocket_ping = 5
126
- end
127
-
128
- it 'sends pings' do
129
- @reply_to = nil
130
- client.on :pong do |data|
131
- @reply_to = data.reply_to
132
- queue.push :pong
133
- client.stop!
134
- end
135
-
136
- start_server
137
-
138
- queue.pop_with_timeout(10)
139
- expect(@reply_to).to eq 1
140
- end
141
-
142
- it 'rebuilds the websocket connection when dropped' do
143
- @reply_to = nil
144
- client.on :pong do |data|
145
- logger.info data
146
- @reply_to = data.reply_to
147
- if @reply_to == 1
148
- client.instance_variable_get(:@socket).close
149
- queue.push :close
150
- else
151
- expect(@reply_to).to eq 2
152
- queue.push :pong
153
- client.stop!
154
- end
155
- end
156
-
157
- start_server
158
-
159
- 4.times do |i|
160
- queue.pop_with_timeout(10)
161
- client.logger.info "Pop #{i}"
162
- end
163
- end
164
- end
165
-
166
- context 'with websocket_ping not set' do
167
- before do
168
- client.websocket_ping = 0
169
- end
170
-
171
- it 'does not send pings' do
172
- @reply_to = nil
173
-
174
- client.on :pong do |data|
175
- @reply_to = data.reply_to
176
- end
177
-
178
- client.on :hello do
179
- client.stop!
180
- end
181
-
182
- start_server
183
- wait_for_server
184
-
185
- expect(@reply_to).to be_nil
186
- end
187
- end
188
-
189
- it 'gets close, followed by closed' do
190
- client.on :hello do
191
- expect(client.started?).to be true
192
- client.stop!
193
- end
194
-
195
- client.on :close do |data|
196
- logger.debug "client.on :close, data=#{data}"
197
- @close_called = true
198
- end
199
-
200
- client.on :closed do |data|
201
- logger.debug "client.on :closed, data=#{data}"
202
- expect(@close_called).to be true
203
- end
204
-
205
- start_server
206
- end
207
- end
@@ -1,16 +0,0 @@
1
- # frozen_string_literal: true
2
- require 'spec_helper'
3
-
4
- describe Slack::Config do
5
- describe '#configure' do
6
- before do
7
- Slack.configure do |config|
8
- config.token = 'a token'
9
- end
10
- end
11
-
12
- it 'sets token' do
13
- expect(Slack.config.token).to eq 'a token'
14
- end
15
- end
16
- end
@@ -1,35 +0,0 @@
1
- # frozen_string_literal: true
2
- require 'spec_helper'
3
-
4
- RSpec.describe Slack::Events::Config do
5
- before do
6
- ENV['SLACK_SIGNING_SECRET'] = 'secret'
7
- described_class.reset
8
- end
9
-
10
- after do
11
- ENV.delete 'SLACK_SIGNING_SECRET'
12
- end
13
-
14
- it 'defaults signing secret to ENV[SLACK_SIGNING_SECRET]' do
15
- expect(Slack::Events.config.signing_secret).to eq 'secret'
16
- end
17
-
18
- it 'defaults signature expiration to 5 minutes' do
19
- expect(Slack::Events.config.signature_expires_in).to eq 5 * 60
20
- end
21
-
22
- context 'configured' do
23
- before do
24
- Slack::Events.configure do |config|
25
- config.signing_secret = 'custom'
26
- config.signature_expires_in = 45
27
- end
28
- end
29
-
30
- it 'uses the configured values' do
31
- expect(Slack::Events.config.signing_secret).to eq 'custom'
32
- expect(Slack::Events.config.signature_expires_in).to eq 45
33
- end
34
- end
35
- end