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.
- checksums.yaml +4 -4
- data/.github/workflows/update_api.yml +1 -1
- data/.rubocop_todo.yml +43 -13
- data/CHANGELOG.md +12 -0
- data/CONTRIBUTING.md +7 -7
- data/Gemfile +1 -0
- data/README.md +46 -28
- data/bin/commands/admin_conversations.rb +21 -0
- data/bin/commands/admin_users_session.rb +1 -1
- data/bin/commands/admin_workflows.rb +3 -1
- data/bin/commands/admin_workflows_triggers_types_permissions.rb +4 -4
- data/bin/commands/assistant_threads.rb +45 -0
- data/bin/commands/bookmarks.rb +1 -0
- data/bin/commands/canvases.rb +4 -4
- data/bin/commands/canvases_access.rb +3 -3
- data/bin/commands/chat.rb +7 -3
- data/bin/commands/conversations.rb +5 -5
- data/bin/commands/conversations_canvases.rb +2 -2
- data/bin/commands/conversations_requestSharedInvite.rb +48 -0
- data/bin/commands/files.rb +2 -1
- data/bin/commands/usergroups.rb +5 -0
- data/bin/commands/usergroups_users.rb +2 -0
- data/examples/files_upload_v2/.env.example +1 -0
- data/examples/files_upload_v2/Gemfile +5 -0
- data/examples/files_upload_v2/README.md +13 -0
- data/examples/files_upload_v2/files_upload_v2.rb +37 -0
- data/examples/oauth_v2/.env.example +4 -0
- data/examples/oauth_v2/Gemfile +7 -0
- data/examples/oauth_v2/README.md +33 -0
- data/examples/oauth_v2/oauth_v2.rb +60 -0
- data/lib/slack/messages/formatting.rb +1 -1
- data/lib/slack/version.rb +1 -1
- data/lib/slack/web/api/endpoints/admin_conversations.rb +35 -0
- data/lib/slack/web/api/endpoints/admin_users_session.rb +2 -3
- data/lib/slack/web/api/endpoints/admin_workflows.rb +5 -1
- data/lib/slack/web/api/endpoints/admin_workflows_triggers_types_permissions.rb +2 -2
- data/lib/slack/web/api/endpoints/assistant_threads.rb +68 -0
- data/lib/slack/web/api/endpoints/bookmarks.rb +2 -0
- data/lib/slack/web/api/endpoints/canvases.rb +2 -2
- data/lib/slack/web/api/endpoints/canvases_access.rb +4 -4
- data/lib/slack/web/api/endpoints/chat.rb +12 -3
- data/lib/slack/web/api/endpoints/conversations.rb +4 -4
- data/lib/slack/web/api/endpoints/conversations_canvases.rb +1 -1
- data/lib/slack/web/api/endpoints/conversations_requestSharedInvite.rb +73 -0
- data/lib/slack/web/api/endpoints/files.rb +3 -1
- data/lib/slack/web/api/endpoints/usergroups.rb +10 -0
- data/lib/slack/web/api/endpoints/usergroups_users.rb +4 -0
- data/lib/slack/web/api/endpoints.rb +4 -0
- data/lib/slack/web/api/errors.rb +48 -4
- data/lib/slack/web/api/helpers/files.rb +87 -0
- data/lib/slack/web/api/helpers.rb +13 -0
- data/lib/slack/web/api/templates/method_spec.erb +4 -3
- data/lib/slack/web/client.rb +1 -0
- data/lib/slack/web/faraday/connection.rb +13 -26
- data/lib/slack/web/faraday/options.rb +24 -0
- data/lib/slack/web/faraday/request.rb +2 -1
- data/lib/slack-ruby-client.rb +2 -0
- data/slack-ruby-client.gemspec +2 -1
- metadata +32 -154
- data/screenshots/create-app.png +0 -0
- data/spec/fixtures/slack/web/429_error.yml +0 -81
- data/spec/fixtures/slack/web/auth_test_error.yml +0 -81
- data/spec/fixtures/slack/web/auth_test_success.yml +0 -81
- data/spec/fixtures/slack/web/conversations_info.yml +0 -167
- data/spec/fixtures/slack/web/conversations_setTopic.yml +0 -84
- data/spec/fixtures/slack/web/conversations_setTopic_one_page.yml +0 -172
- data/spec/fixtures/slack/web/conversations_setTopic_paginated.yml +0 -253
- data/spec/fixtures/slack/web/paginated_users_list.yml +0 -613
- data/spec/fixtures/slack/web/rtm_connect.yml +0 -391
- data/spec/fixtures/slack/web/users_info.yml +0 -214
- data/spec/fixtures/slack/web/users_list.yml +0 -133
- data/spec/fixtures/slack/web/views_open_error.yml +0 -83
- data/spec/integration/integration_spec.rb +0 -207
- data/spec/slack/config_spec.rb +0 -16
- data/spec/slack/events/config_spec.rb +0 -35
- data/spec/slack/events/request_spec.rb +0 -199
- data/spec/slack/messages/formatting_spec.rb +0 -156
- data/spec/slack/real_time/api/message_spec.rb +0 -20
- data/spec/slack/real_time/api/ping_spec.rb +0 -17
- data/spec/slack/real_time/api/typing_spec.rb +0 -19
- data/spec/slack/real_time/client_spec.rb +0 -601
- data/spec/slack/real_time/concurrency/clients/async_spec.rb +0 -16
- data/spec/slack/real_time/concurrency/it_behaves_like_a_realtime_socket.rb +0 -21
- data/spec/slack/real_time/concurrency/with_concurrency_spec.rb +0 -10
- data/spec/slack/real_time/concurrency/without_concurrency_spec.rb +0 -10
- data/spec/slack/real_time/event_handlers/bot_spec.rb +0 -47
- data/spec/slack/real_time/event_handlers/event_handlers_spec.rb +0 -16
- data/spec/slack/real_time/event_handlers/im_spec.rb +0 -51
- data/spec/slack/real_time/event_handlers/private_channel_spec.rb +0 -99
- data/spec/slack/real_time/event_handlers/public_channel_spec.rb +0 -123
- data/spec/slack/real_time/event_handlers/team_spec.rb +0 -63
- data/spec/slack/real_time/event_handlers/user_spec.rb +0 -65
- data/spec/slack/real_time/rtm_connect_spec.rb +0 -14
- data/spec/slack/real_time/stores/store_spec.rb +0 -50
- data/spec/slack/slack_spec.rb +0 -93
- data/spec/slack/version_spec.rb +0 -8
- data/spec/slack/web/api/endpoints/admin_analytics_spec.rb +0 -13
- data/spec/slack/web/api/endpoints/admin_apps_activities_spec.rb +0 -8
- data/spec/slack/web/api/endpoints/admin_apps_approved_spec.rb +0 -8
- data/spec/slack/web/api/endpoints/admin_apps_config_spec.rb +0 -18
- data/spec/slack/web/api/endpoints/admin_apps_requests_spec.rb +0 -13
- data/spec/slack/web/api/endpoints/admin_apps_restricted_spec.rb +0 -8
- data/spec/slack/web/api/endpoints/admin_apps_spec.rb +0 -18
- data/spec/slack/web/api/endpoints/admin_audit_anomaly_allow_spec.rb +0 -8
- data/spec/slack/web/api/endpoints/admin_auth_policy_spec.rb +0 -35
- data/spec/slack/web/api/endpoints/admin_barriers_spec.rb +0 -38
- data/spec/slack/web/api/endpoints/admin_conversations_ekm_spec.rb +0 -8
- data/spec/slack/web/api/endpoints/admin_conversations_restrictAccess_spec.rb +0 -32
- data/spec/slack/web/api/endpoints/admin_conversations_spec.rb +0 -133
- data/spec/slack/web/api/endpoints/admin_emoji_spec.rb +0 -37
- data/spec/slack/web/api/endpoints/admin_functions_permissions_spec.rb +0 -21
- data/spec/slack/web/api/endpoints/admin_functions_spec.rb +0 -13
- data/spec/slack/web/api/endpoints/admin_inviteRequests_approved_spec.rb +0 -8
- data/spec/slack/web/api/endpoints/admin_inviteRequests_denied_spec.rb +0 -8
- data/spec/slack/web/api/endpoints/admin_inviteRequests_spec.rb +0 -18
- data/spec/slack/web/api/endpoints/admin_roles_spec.rb +0 -30
- data/spec/slack/web/api/endpoints/admin_teams_admins_spec.rb +0 -13
- data/spec/slack/web/api/endpoints/admin_teams_owners_spec.rb +0 -13
- data/spec/slack/web/api/endpoints/admin_teams_settings_spec.rb +0 -53
- data/spec/slack/web/api/endpoints/admin_teams_spec.rb +0 -16
- data/spec/slack/web/api/endpoints/admin_usergroups_spec.rb +0 -37
- data/spec/slack/web/api/endpoints/admin_users_session_spec.rb +0 -41
- data/spec/slack/web/api/endpoints/admin_users_spec.rb +0 -67
- data/spec/slack/web/api/endpoints/admin_users_unsupportedVersions_spec.rb +0 -8
- data/spec/slack/web/api/endpoints/admin_workflows_collaborators_spec.rb +0 -24
- data/spec/slack/web/api/endpoints/admin_workflows_permissions_spec.rb +0 -13
- data/spec/slack/web/api/endpoints/admin_workflows_spec.rb +0 -13
- data/spec/slack/web/api/endpoints/admin_workflows_triggers_types_permissions_spec.rb +0 -21
- data/spec/slack/web/api/endpoints/api_spec.rb +0 -8
- data/spec/slack/web/api/endpoints/apps_activities_spec.rb +0 -13
- data/spec/slack/web/api/endpoints/apps_auth_external_spec.rb +0 -13
- data/spec/slack/web/api/endpoints/apps_connections_spec.rb +0 -8
- data/spec/slack/web/api/endpoints/apps_datastore_spec.rb +0 -74
- data/spec/slack/web/api/endpoints/apps_event_authorizations_spec.rb +0 -13
- data/spec/slack/web/api/endpoints/apps_manifest_spec.rb +0 -44
- data/spec/slack/web/api/endpoints/apps_spec.rb +0 -16
- data/spec/slack/web/api/endpoints/auth_spec.rb +0 -8
- data/spec/slack/web/api/endpoints/auth_teams_spec.rb +0 -8
- data/spec/slack/web/api/endpoints/bookmarks_spec.rb +0 -40
- data/spec/slack/web/api/endpoints/bots_spec.rb +0 -8
- data/spec/slack/web/api/endpoints/calls_participants_spec.rb +0 -24
- data/spec/slack/web/api/endpoints/calls_spec.rb +0 -31
- data/spec/slack/web/api/endpoints/canvases_access_spec.rb +0 -21
- data/spec/slack/web/api/endpoints/canvases_sections_spec.rb +0 -16
- data/spec/slack/web/api/endpoints/canvases_spec.rb +0 -21
- data/spec/slack/web/api/endpoints/chat_scheduledMessages_spec.rb +0 -8
- data/spec/slack/web/api/endpoints/chat_spec.rb +0 -134
- data/spec/slack/web/api/endpoints/conversations_canvases_spec.rb +0 -13
- data/spec/slack/web/api/endpoints/conversations_externalInvitePermissions_spec.rb +0 -19
- data/spec/slack/web/api/endpoints/conversations_spec.rb +0 -8
- data/spec/slack/web/api/endpoints/custom_specs/auth_spec.rb +0 -27
- data/spec/slack/web/api/endpoints/custom_specs/chat_spec.rb +0 -206
- data/spec/slack/web/api/endpoints/custom_specs/conversations_spec.rb +0 -13
- data/spec/slack/web/api/endpoints/custom_specs/dialog_spec.rb +0 -40
- data/spec/slack/web/api/endpoints/custom_specs/users_spec.rb +0 -38
- data/spec/slack/web/api/endpoints/custom_specs/views_spec.rb +0 -112
- data/spec/slack/web/api/endpoints/dialog_spec.rb +0 -14
- data/spec/slack/web/api/endpoints/dnd_spec.rb +0 -18
- data/spec/slack/web/api/endpoints/emoji_spec.rb +0 -8
- data/spec/slack/web/api/endpoints/files_comments_spec.rb +0 -16
- data/spec/slack/web/api/endpoints/files_remote_spec.rb +0 -24
- data/spec/slack/web/api/endpoints/files_spec.rb +0 -57
- data/spec/slack/web/api/endpoints/functions_distributions_permissions_spec.rb +0 -10
- data/spec/slack/web/api/endpoints/functions_spec.rb +0 -28
- data/spec/slack/web/api/endpoints/functions_workflows_steps_responses_spec.rb +0 -13
- data/spec/slack/web/api/endpoints/functions_workflows_steps_spec.rb +0 -13
- data/spec/slack/web/api/endpoints/migration_spec.rb +0 -13
- data/spec/slack/web/api/endpoints/oauth_spec.rb +0 -8
- data/spec/slack/web/api/endpoints/oauth_v2_spec.rb +0 -16
- data/spec/slack/web/api/endpoints/openid_connect_spec.rb +0 -8
- data/spec/slack/web/api/endpoints/pins_spec.rb +0 -23
- data/spec/slack/web/api/endpoints/reactions_spec.rb +0 -24
- data/spec/slack/web/api/endpoints/reminders_spec.rb +0 -31
- data/spec/slack/web/api/endpoints/rtm_spec.rb +0 -8
- data/spec/slack/web/api/endpoints/search_spec.rb +0 -23
- data/spec/slack/web/api/endpoints/stars_spec.rb +0 -8
- data/spec/slack/web/api/endpoints/team_billing_spec.rb +0 -8
- data/spec/slack/web/api/endpoints/team_externalTeams_spec.rb +0 -13
- data/spec/slack/web/api/endpoints/team_preferences_spec.rb +0 -8
- data/spec/slack/web/api/endpoints/team_profile_spec.rb +0 -8
- data/spec/slack/web/api/endpoints/team_spec.rb +0 -8
- data/spec/slack/web/api/endpoints/tooling_tokens_spec.rb +0 -13
- data/spec/slack/web/api/endpoints/usergroups_spec.rb +0 -28
- data/spec/slack/web/api/endpoints/usergroups_users_spec.rb +0 -21
- data/spec/slack/web/api/endpoints/users_admin_spec.rb +0 -18
- data/spec/slack/web/api/endpoints/users_discoverableContacts_spec.rb +0 -13
- data/spec/slack/web/api/endpoints/users_prefs_spec.rb +0 -8
- data/spec/slack/web/api/endpoints/users_profile_spec.rb +0 -14
- data/spec/slack/web/api/endpoints/users_spec.rb +0 -8
- data/spec/slack/web/api/endpoints/views_spec.rb +0 -65
- data/spec/slack/web/api/endpoints/workflows_spec.rb +0 -34
- data/spec/slack/web/api/endpoints/workflows_triggers_permissions_spec.rb +0 -31
- data/spec/slack/web/api/error_spec.rb +0 -14
- data/spec/slack/web/api/errors/slack_error_spec.rb +0 -33
- data/spec/slack/web/api/mixins/conversations_list_spec.rb +0 -21
- data/spec/slack/web/api/mixins/conversations_spec.rb +0 -45
- data/spec/slack/web/api/mixins/users_spec.rb +0 -52
- data/spec/slack/web/api/options_spec.rb +0 -69
- data/spec/slack/web/api/pagination/cursor_spec.rb +0 -102
- data/spec/slack/web/client_spec.rb +0 -359
- data/spec/slack/web/faraday/request_spec.rb +0 -80
- data/spec/slack/web/faraday/response/raise_error_spec.rb +0 -86
- data/spec/spec_helper.rb +0 -30
- data/spec/support/queue_with_timeout.rb +0 -35
- data/spec/support/real_time/concurrency/mock.rb +0 -31
- data/spec/support/real_time/connected_client.rb +0 -21
- data/spec/support/real_time/event.rb +0 -12
- data/spec/support/real_time/loaded_client.rb +0 -120
- data/spec/support/token.rb +0 -11
- 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
|
data/spec/slack/config_spec.rb
DELETED
@@ -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
|