API Docs: Update links, copy edit, apply style guide#1486
Conversation
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #1486 +/- ##
=========================================
Coverage 73.04% 73.04%
Complexity 4380 4380
=========================================
Files 475 475
Lines 14244 14244
Branches 1447 1447
=========================================
Hits 10404 10404
Misses 2986 2986
Partials 854 854 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
| ### What your Bolt app does | ||
|
|
||
| All your app needs to do to properly handle OAuth Flow are: | ||
| To properly handle the OAuth Flow: |
There was a problem hiding this comment.
| To properly handle the OAuth Flow: | |
| To properly handle the OAuth flow: |
| To properly handle the OAuth Flow: | ||
|
|
||
| * Provide an endpoint starting OAuth flow by redirecting installers to Slack's Authorize endpoint with sufficient parameters | ||
| * Provide an endpoint starting the OAuth flow by redirecting installers to Slack's `authorize` endpoint with sufficient parameters |
There was a problem hiding this comment.
| * Provide an endpoint starting the OAuth flow by redirecting installers to Slack's `authorize` endpoint with sufficient parameters | |
| * Provide an endpoint starting the OAuth flow by redirecting installers to the `authorize` endpoint with sufficient parameters |
| The Audit Logs API methods conform to Slack's [rate limits](https://docs.slack.dev/apis/web-api/rate-limits) and all methods are rated Tier 3. This allows for up to 50 calls per minute, with an allowance for sporadic bursts. Refer to [the API documentation](https://docs.slack.dev/admins/audit-logs-api) for more details. | ||
|
|
||
| `AsyncAuditClient`, the async client, has great consideration for Rate Limits. | ||
| The async client, `AsyncAuditClient`, has great consideration for rate limits. The async client internally has its queue systems to avoid burst traffics as much as possible while `AuditClient`, the synchronous client, always blindly sends requests. Both sync and async clients maintain the metrics data in a `MetricsDatastore` together. This allows the async client to accurately know the current traffic they generated toward the Slack platform and estimate the remaining amount to call. |
There was a problem hiding this comment.
| The async client, `AsyncAuditClient`, has great consideration for rate limits. The async client internally has its queue systems to avoid burst traffics as much as possible while `AuditClient`, the synchronous client, always blindly sends requests. Both sync and async clients maintain the metrics data in a `MetricsDatastore` together. This allows the async client to accurately know the current traffic they generated toward the Slack platform and estimate the remaining amount to call. | |
| The async client, `AsyncAuditClient`, takes rate limits into consideration. The async client internally has its queue systems to avoid burst traffics as much as possible while `AuditClient`, the synchronous client, always blindly sends requests. Both sync and async clients maintain the metrics data in a `MetricsDatastore` together. This allows the async client to accurately know the current traffic they generated toward the Slack platform and estimate the remaining amount to call. |
docs/content/guides/bolt-basics.md
Outdated
| ## Use Web APIs / reply using `say` utility | ||
|
|
||
| When you need to call some Slack Web APIs in Bolt apps, use `ctx.client()` for it. The `MethodsClient` created by the method already holds a valid bot token. So, you don't need to give a token to it. Just calling a method with parameters as below works for you. | ||
| Use `ctx.client()` to call Slack Web API methods in Bolt apps. The `MethodsClient` created by the method already holds a valid bot token, so there is no need to provide a token to it. Simply call the method with parameters as below. |
There was a problem hiding this comment.
| Use `ctx.client()` to call Slack Web API methods in Bolt apps. The `MethodsClient` created by the method already holds a valid bot token, so there is no need to provide a token to it. Simply call the method with parameters as below. | |
| Use `ctx.client()` to call Slack Web API methods in Bolt apps. The `MethodsClient` created by the method already holds a valid bot token, so there is no need to provide a token to it. Call the method with parameters as below. |
| ``` | ||
|
|
||
| As you see, using `text` is fairly simple. The only thing to know is to give a string value with a valid format. Consult [Basic formatting with `mrkdwn`](https://docs.slack.dev/messaging/formatting-message-text) for understanding the markup language. | ||
| As you see, using `text` is fairly simple: give a string value with a valid format. Consult [Basic formatting with `mrkdwn`](https://docs.slack.dev/messaging/formatting-message-text) for understanding the markup language. |
There was a problem hiding this comment.
| As you see, using `text` is fairly simple: give a string value with a valid format. Consult [Basic formatting with `mrkdwn`](https://docs.slack.dev/messaging/formatting-message-text) for understanding the markup language. | |
| Use `text` by providing a string value with a valid format. Consult [Basic formatting with `mrkdwn`](https://docs.slack.dev/messaging/formatting-message-text) for understanding the markup language. |
| ``` | ||
|
|
||
| You can use this way also for building a message for Incoming Webhooks and `response_url` calls. | ||
| You build a message for incoming webhooks and `response_url` calls this way too. |
There was a problem hiding this comment.
| You build a message for incoming webhooks and `response_url` calls this way too. | |
| You can build a message for incoming webhooks and `response_url` calls this way too. |
docs/content/guides/events-api.md
Outdated
| ## Under the hood | ||
|
|
||
| If you hope to understand what is actually happening with the above code, reading the following (a bit pseudo) code may be helpful. | ||
| If you hope to understand what is happening with the above code, reading the following (a bit pseudo) code may be helpful. |
There was a problem hiding this comment.
| If you hope to understand what is happening with the above code, reading the following (a bit pseudo) code may be helpful. | |
| If you hope to understand what is happening with the above code, reading the following (pseudo) code may be helpful. |
| <TabItem value="socket-mode" label="Socket Mode"> | ||
|
|
||
| Only single source code is required to run your first-ever Bolt app. All you need to do is define the main method that starts `SocketModeApp`. | ||
| Only single source code is required to run your first Bolt app. All you need to do is define the main method that starts `SocketModeApp`. |
There was a problem hiding this comment.
| Only single source code is required to run your first Bolt app. All you need to do is define the main method that starts `SocketModeApp`. | |
| Only single source code is required to run your first Bolt app. You'll need to define the main method that starts `SocketModeApp`. |
| ``` | ||
|
|
||
| If you go with JDK 10+, thanks to [Local Variable Type Inference](https://developer.oracle.com/java/jdk-10-local-variable-type-inference.html), your code could be much more concise. To take advantage of it, install OpenJDK 11 and set the compatible Java versions in `build.gradle` as below. Also, configure the same on your IDE. | ||
| If you go with JDK 10+, thanks to [Local Variable Type Inference](https://docs.oracle.com/en/java/javase/21/language/local-variable-type-inference.html), your code could be much more concise. To take advantage of it, install OpenJDK 11 and set the compatible Java versions in `build.gradle` as below. Also, configure the same on your IDE. |
There was a problem hiding this comment.
| If you go with JDK 10+, thanks to [Local Variable Type Inference](https://docs.oracle.com/en/java/javase/21/language/local-variable-type-inference.html), your code could be much more concise. To take advantage of it, install OpenJDK 11 and set the compatible Java versions in `build.gradle` as below. Also, configure the same on your IDE. | |
| If you go with JDK 10+, thanks to [Local Variable Type Inference](https://docs.oracle.com/en/java/javase/21/language/local-variable-type-inference.html), you can write more concise code. To do so, install OpenJDK 11 and set the compatible Java versions in `build.gradle` as below, configuring the same on your IDE. |
| <TabItem value="http" label="HTTP"> | ||
|
|
||
| Only single source code is required to run your first-ever Bolt app. All you need to do is define the main method that starts `SlackAppServer`. Your server with the default configuration will listen to the 3000 port but it's configurable. Check other constructors of the class to customize the behavior. | ||
| Only single source code is required to run your first Bolt app. All you need to do is define the main method that starts `SlackAppServer`. Your server with the default configuration will listen to the 3000 port but it's configurable. Check other constructors of the class to customize the behavior. |
There was a problem hiding this comment.
| Only single source code is required to run your first Bolt app. All you need to do is define the main method that starts `SlackAppServer`. Your server with the default configuration will listen to the 3000 port but it's configurable. Check other constructors of the class to customize the behavior. | |
| Only single source code is required to run your first Bolt app. You'll need to define the main method that starts `SlackAppServer`. Your server with the default configuration will listen to the 3000 port but it's configurable. Check other constructors of the class to customize the behavior. |
| ``` | ||
|
|
||
| If you go with JDK 10+, thanks to [Local Variable Type Inference](https://developer.oracle.com/java/jdk-10-local-variable-type-inference.html), your code could be much more concise. To take advantage of it, install OpenJDK 11 and set the compatible Java versions in `build.gradle` as below. Also, configure the same on your IDE. | ||
| If you go with JDK 10+, thanks to [Local Variable Type Inference](https://docs.oracle.com/en/java/javase/21/language/local-variable-type-inference.html), your code could be much more concise. To take advantage of it, install OpenJDK 11 and set the compatible Java versions in `build.gradle` as below. Also, configure the same on your IDE. |
There was a problem hiding this comment.
| If you go with JDK 10+, thanks to [Local Variable Type Inference](https://docs.oracle.com/en/java/javase/21/language/local-variable-type-inference.html), your code could be much more concise. To take advantage of it, install OpenJDK 11 and set the compatible Java versions in `build.gradle` as below. Also, configure the same on your IDE. | |
| If you go with JDK 10+, thanks to [Local Variable Type Inference](https://docs.oracle.com/en/java/javase/21/language/local-variable-type-inference.html), you can write more concise code. To do so, install OpenJDK 11 and set the compatible Java versions in `build.gradle` as below, configuring the same on your IDE. |
| As [Spring Boot](https://spring.io/projects/spring-boot) is one of the most popular web frameworks in the Java world, you may be curious about the possibility to let this Bolt app live together with it. | ||
|
|
||
| Rest assured about it! It's quick and easy to _inject_ Bolt into Spring Boot apps. | ||
| Rest assured, we can _inject_ Bolt into Spring Boot apps. |
There was a problem hiding this comment.
| Rest assured, we can _inject_ Bolt into Spring Boot apps. | |
| Don't worry, we can _inject_ Bolt into Spring Boot apps. |
| # Incoming webhooks | ||
|
|
||
| [Incoming Webhooks](https://docs.slack.dev/messaging/sending-messages-using-incoming-webhooks) is a simple way to post messages from apps into Slack. Creating an Incoming Webhook gives you a unique URL to which you send a JSON payload with the message and some options. | ||
| [Incoming webhooks](https://docs.slack.dev/messaging/sending-messages-using-incoming-webhooks) are a simple way to post messages from apps into Slack. Creating an incoming webhook gives you a unique URL to which you send a JSON payload with the message and some options. |
There was a problem hiding this comment.
| [Incoming webhooks](https://docs.slack.dev/messaging/sending-messages-using-incoming-webhooks) are a simple way to post messages from apps into Slack. Creating an incoming webhook gives you a unique URL to which you send a JSON payload with the message and some options. | |
| [Incoming webhooks](https://docs.slack.dev/messaging/sending-messages-using-incoming-webhooks) are a straightforward way to post messages from apps into Slack. Creating an incoming webhook gives you a unique URL to which you send a JSON payload with the message and some options. |
|
|
||
| * Visit the [Issue Tracker](https://github.com/slackapi/java-slack-sdk/issues) for questions, bug reports, feature requests, and general discussion related to Bolt for JavaScript. Try searching for an existing issue before creating a new one. | ||
| * Visit the [Slack Developer Community](https://slackcommunity.com/) for getting help or for just bonding with your fellow Slack developers. | ||
| * Visit the [Issue Tracker](https://github.com/slackapi/java-slack-sdk/issues) for questions, bug reports, feature requests, and general discussion related to Bolt for Java. Try searching for an existing issue before creating a new one. |
There was a problem hiding this comment.
i am embarrassed
docs/content/index.md
Outdated
| Within these docs, there are two different modules: | ||
|
|
||
| * [Bolt for Java Guides](/guides/getting-started-with-bolt), which is a framework with a simple API that makes it easy to write modern Slack apps in Java. | ||
| * [Bolt for Java Guides](/guides/getting-started-with-bolt), which is a framework with a simple API that makes it easy to write Slack apps in Java. |
There was a problem hiding this comment.
| * [Bolt for Java Guides](/guides/getting-started-with-bolt), which is a framework with a simple API that makes it easy to write Slack apps in Java. | |
| * [Bolt for Java Guides](/guides/getting-started-with-bolt), which is a framework with a simplified API that helps write Slack apps in Java. |
| # Web API for Org Admins | ||
|
|
||
| The method names of a portion of [API Methods](https://docs.slack.dev/reference/methods) start with `admin.`. These APIs are not available for all developers. They are supposed to be used by [Enterprise Grid](https://docs.slack.dev/enterprise-grid/) Organization administrators. | ||
| The method names of a portion of [API Methods](https://docs.slack.dev/reference/methods) start with `admin.`. These APIs are not available for all developers. They are intended to be used by [Enterprise Grid](https://docs.slack.dev/enterprise-grid/) organization administrators. |
There was a problem hiding this comment.
| The method names of a portion of [API Methods](https://docs.slack.dev/reference/methods) start with `admin.`. These APIs are not available for all developers. They are intended to be used by [Enterprise Grid](https://docs.slack.dev/enterprise-grid/) organization administrators. | |
| The method names of a portion of [API methods](https://docs.slack.dev/reference/methods) start with `admin.`. These API methods are not available for all developers. They are intended to be used by [Enterprise Grid](https://docs.slack.dev/enterprise-grid/) organization administrators. |
| ## Build from source | ||
|
|
||
| You may want to build the latest revision on your own. In the case of building from source, go with the following steps. | ||
| You may want to build the latest revision on your own. In the case of building from source, exeute the following commands in your terminal. |
There was a problem hiding this comment.
| You may want to build the latest revision on your own. In the case of building from source, exeute the following commands in your terminal. | |
| You may want to build the latest revision on your own. In the case of building from source, execute the following commands in your terminal. |
| When you add Spring Boot extensions such as Spring Security, the app may not work well with Bolt. | ||
| In that case, consider splitting the app into a few and make the Bolt app as simple as possible. |
There was a problem hiding this comment.
| When you add Spring Boot extensions such as Spring Security, the app may not work well with Bolt. | |
| In that case, consider splitting the app into a few and make the Bolt app as simple as possible. | |
| When you add Spring Boot extensions such as Spring Security, the app may not work well with Bolt. In that case, consider splitting the app into a few and make the Bolt app as simple as possible. |
docs/content/guides/status-api.md
Outdated
| ## Call current status API in Java | ||
|
|
||
| As with other API clients, you can call **Slack**'s method `status()` to create an API client and then call `current()` to perform an HTTP request. | ||
| As with other API clients, you can call `Slack`'s method `status()` to create an API client and then call `current()` to perform an HTTP request. |
There was a problem hiding this comment.
| As with other API clients, you can call `Slack`'s method `status()` to create an API client and then call `current()` to perform an HTTP request. | |
| As with other API clients, you can call the Slack `status()` method to create an API client and then call `current()` to perform an HTTP request. |
| ## Under the hood | ||
|
|
||
| If you hope to understand what is actually happening with the above code, reading the following (a bit pseudo) code may be helpful. | ||
| If you hope to understand what is happening with the above code, reading the following (a bit pseudo) code may be helpful. |
There was a problem hiding this comment.
| If you hope to understand what is happening with the above code, reading the following (a bit pseudo) code may be helpful. | |
| If you hope to understand what is happening with the above code, reading the following (pseudo) code may be helpful. |
docs/content/guides/shortcuts.md
Outdated
| ## Under the hood | ||
|
|
||
| If you hope to understand what is actually happening with the above code, reading the following (a bit pseudo) code may be helpful. | ||
| If you hope to understand what is happening with the above code, reading the following (a bit pseudo) code may be helpful. |
There was a problem hiding this comment.
| If you hope to understand what is happening with the above code, reading the following (a bit pseudo) code may be helpful. | |
| If you hope to understand what is happening with the above code, reading the following (pseudo) code may be helpful. |
| ## Under the Hood | ||
|
|
||
| If you hope to understand what is actually happening with the above code, reading the following (a bit pseudo) code may be helpful. | ||
| If you hope to understand what is happening with the above code, reading the following (a bit pseudo) code may be helpful. |
There was a problem hiding this comment.
| If you hope to understand what is happening with the above code, reading the following (a bit pseudo) code may be helpful. | |
| If you hope to understand what is happening with the above code, reading the following (pseudo) code may be helpful. |
technically-tracy
left a comment
There was a problem hiding this comment.
Thanks for giving these docs some much-needed TLC!
| final SlackSignature.Generator generator = new SlackSignature.Generator(secret); | ||
|
|
||
| String realPayload = "{\"type\":\"block_actions\",\"team\":{\"id\":\"T123\",\"domain\":\"test-test\"},\"user\":{\"id\":\"U123\",\"username\":\"test-test\",\"name\":\"test-test\",\"team_id\":\"T123\"},\"api_app_id\":\"A123\",\"token\":\"legacy-fixed-value\",\"container\":{\"type\":\"view\",\"view_id\":\"V123\"},\"trigger_id\":\"987196394372.3485157640.efe5ca926abc9dadb0371534fff4326e\",\"view\":{\"id\":\"V123\",\"team_id\":\"T123\",\"type\":\"home\",\"blocks\":[{\"type\":\"section\",\"block_id\":\"hltsY\",\"text\":{\"type\":\"mrkdwn\",\"text\":\"*Here's what you can do with Project Tracker:*\",\"verbatim\":false}},{\"type\":\"actions\",\"block_id\":\"home_actions\",\"elements\":[{\"type\":\"button\",\"action_id\":\"home_button_1\",\"text\":{\"type\":\"plain_text\",\"text\":\"Create New Task\",\"emoji\":true},\"style\":\"primary\",\"value\":\"create_task\"},{\"type\":\"button\",\"action_id\":\"home_button_2\",\"text\":{\"type\":\"plain_text\",\"text\":\"Create New Project\",\"emoji\":true},\"value\":\"create_project\"},{\"type\":\"button\",\"action_id\":\"home_button_3\",\"text\":{\"type\":\"plain_text\",\"text\":\"Help\",\"emoji\":true},\"value\":\"help\"}]},{\"type\":\"context\",\"block_id\":\"BNV\",\"elements\":[{\"fallback\":\"20x20px image\",\"image_url\":\"https:\\/\\/api.slack.com\\/img\\/blocks\\/bkb_template_images\\/placeholder.png\",\"image_width\":20,\"image_height\":20,\"image_bytes\":96,\"type\":\"image\",\"alt_text\":\"placeholder\"}]},{\"type\":\"section\",\"block_id\":\"z61\",\"text\":{\"type\":\"mrkdwn\",\"text\":\"*Your Configurations*\",\"verbatim\":false}},{\"type\":\"divider\",\"block_id\":\"F6ZOo\"},{\"type\":\"section\",\"block_id\":\"NmR\",\"text\":{\"type\":\"mrkdwn\",\"text\":\"*#public-relations*\\n<fakelink.toUrl.com|PR Strategy 2019> posts new tasks, comments, and project updates to <fakelink.toChannel.com|#public-relations>\",\"verbatim\":false},\"accessory\":{\"type\":\"button\",\"text\":{\"type\":\"plain_text\",\"text\":\"Edit\",\"emoji\":true},\"value\":\"public-relations\",\"action_id\":\"czws\"}},{\"type\":\"divider\",\"block_id\":\"QAaXg\"},{\"type\":\"section\",\"block_id\":\"LqY\",\"text\":{\"type\":\"mrkdwn\",\"text\":\"*#team-updates*\\n<fakelink.toUrl.com|Q4 Team Projects> posts project updates to <fakelink.toChannel.com|#team-updates>\",\"verbatim\":false},\"accessory\":{\"type\":\"button\",\"text\":{\"type\":\"plain_text\",\"text\":\"Edit\",\"emoji\":true},\"value\":\"public-relations\",\"action_id\":\"BOp7O\"}},{\"type\":\"divider\",\"block_id\":\"NGZ\"},{\"type\":\"actions\",\"block_id\":\"QFv\",\"elements\":[{\"type\":\"button\",\"action_id\":\"home_button_4\",\"text\":{\"type\":\"plain_text\",\"text\":\"New Configuration\",\"emoji\":true},\"value\":\"new_configuration\"}]}],\"private_metadata\":\"\",\"callback_id\":\"\",\"state\":{\"values\":{}},\"hash\":\"1583634748.7562ffd9\",\"title\":{\"type\":\"plain_text\",\"text\":\"View Title\",\"emoji\":true},\"clear_on_close\":false,\"notify_on_close\":false,\"close\":null,\"submit\":null,\"previous_view_id\":null,\"root_view_id\":\"V123\",\"app_id\":\"A123\",\"external_id\":\"\",\"app_installed_team_id\":\"T123\",\"bot_id\":\"B123\"},\"actions\":[{\"action_id\":\"home_button_1\",\"block_id\":\"home_actions\",\"text\":{\"type\":\"plain_text\",\"text\":\"Create New Task\",\"emoji\":true},\"value\":\"create_task\",\"style\":\"primary\",\"type\":\"button\",\"action_ts\":\"1583635577.758298\"}]}"; | ||
| String realPayload = "{\"type\":\"block_actions\",\"team\":{\"id\":\"T123\",\"domain\":\"test-test\"},\"user\":{\"id\":\"U123\",\"username\":\"test-test\",\"name\":\"test-test\",\"team_id\":\"T123\"},\"api_app_id\":\"A123\",\"token\":\"legacy-fixed-value\",\"container\":{\"type\":\"view\",\"view_id\":\"V123\"},\"trigger_id\":\"987196394372.3485157640.efe5ca926abc9dadb0371534fff4326e\",\"view\":{\"id\":\"V123\",\"team_id\":\"T123\",\"type\":\"home\",\"blocks\":[{\"type\":\"section\",\"block_id\":\"hltsY\",\"text\":{\"type\":\"mrkdwn\",\"text\":\"*Here's what you can do with Project Tracker:*\",\"verbatim\":false}},{\"type\":\"actions\",\"block_id\":\"home_actions\",\"elements\":[{\"type\":\"button\",\"action_id\":\"home_button_1\",\"text\":{\"type\":\"plain_text\",\"text\":\"Create New Task\",\"emoji\":true},\"style\":\"primary\",\"value\":\"create_task\"},{\"type\":\"button\",\"action_id\":\"home_button_2\",\"text\":{\"type\":\"plain_text\",\"text\":\"Create New Project\",\"emoji\":true},\"value\":\"create_project\"},{\"type\":\"button\",\"action_id\":\"home_button_3\",\"text\":{\"type\":\"plain_text\",\"text\":\"Help\",\"emoji\":true},\"value\":\"help\"}]},{\"type\":\"context\",\"block_id\":\"BNV\",\"elements\":[{\"fallback\":\"20x20px image\",\"image_url\":\"https:\\/\\/docs.slack.dev\\/img\\/blocks\\/bkb_template_images\\/placeholder.png\",\"image_width\":20,\"image_height\":20,\"image_bytes\":96,\"type\":\"image\",\"alt_text\":\"placeholder\"}]},{\"type\":\"section\",\"block_id\":\"z61\",\"text\":{\"type\":\"mrkdwn\",\"text\":\"*Your Configurations*\",\"verbatim\":false}},{\"type\":\"divider\",\"block_id\":\"F6ZOo\"},{\"type\":\"section\",\"block_id\":\"NmR\",\"text\":{\"type\":\"mrkdwn\",\"text\":\"*#public-relations*\\n<fakelink.toUrl.com|PR Strategy 2019> posts new tasks, comments, and project updates to <fakelink.toChannel.com|#public-relations>\",\"verbatim\":false},\"accessory\":{\"type\":\"button\",\"text\":{\"type\":\"plain_text\",\"text\":\"Edit\",\"emoji\":true},\"value\":\"public-relations\",\"action_id\":\"czws\"}},{\"type\":\"divider\",\"block_id\":\"QAaXg\"},{\"type\":\"section\",\"block_id\":\"LqY\",\"text\":{\"type\":\"mrkdwn\",\"text\":\"*#team-updates*\\n<fakelink.toUrl.com|Q4 Team Projects> posts project updates to <fakelink.toChannel.com|#team-updates>\",\"verbatim\":false},\"accessory\":{\"type\":\"button\",\"text\":{\"type\":\"plain_text\",\"text\":\"Edit\",\"emoji\":true},\"value\":\"public-relations\",\"action_id\":\"BOp7O\"}},{\"type\":\"divider\",\"block_id\":\"NGZ\"},{\"type\":\"actions\",\"block_id\":\"QFv\",\"elements\":[{\"type\":\"button\",\"action_id\":\"home_button_4\",\"text\":{\"type\":\"plain_text\",\"text\":\"New Configuration\",\"emoji\":true},\"value\":\"new_configuration\"}]}],\"private_metadata\":\"\",\"callback_id\":\"\",\"state\":{\"values\":{}},\"hash\":\"1583634748.7562ffd9\",\"title\":{\"type\":\"plain_text\",\"text\":\"View Title\",\"emoji\":true},\"clear_on_close\":false,\"notify_on_close\":false,\"close\":null,\"submit\":null,\"previous_view_id\":null,\"root_view_id\":\"V123\",\"app_id\":\"A123\",\"external_id\":\"\",\"app_installed_team_id\":\"T123\",\"bot_id\":\"B123\"},\"actions\":[{\"action_id\":\"home_button_1\",\"block_id\":\"home_actions\",\"text\":{\"type\":\"plain_text\",\"text\":\"Create New Task\",\"emoji\":true},\"value\":\"create_task\",\"style\":\"primary\",\"type\":\"button\",\"action_ts\":\"1583635577.758298\"}]}"; |
There was a problem hiding this comment.
Nice catch 💯 good catch!
| ### What your Bolt app does | ||
|
|
||
| All your app needs to do to properly handle OAuth Flow are: | ||
| To properly handle the OAuth flow: |
| |`AuditClient#getActions()`|`GET /actions`| | ||
|
|
||
| ### getLogs() | ||
| ### `getLogs()` |
| ``` | ||
|
|
||
| If you go with JDK 10+, thanks to [Local Variable Type Inference](https://developer.oracle.com/java/jdk-10-local-variable-type-inference.html), your code could be much more concise. To take advantage of it, install OpenJDK 11 and set the compatible Java versions in `build.gradle` as below. Also, configure the same on your IDE. | ||
| If you go with JDK 10+, thanks to [Local Variable Type Inference](https://docs.oracle.com/en/java/javase/21/language/local-variable-type-inference.html), you can write more concise code. To do so, install OpenJDK 11 and set the compatible Java versions in `build.gradle` as below, configuring the same on your IDE. |
| /** | ||
| * https://api.slack.com/methods/admin.conversations.whitelist.remove | ||
| */ |
There was a problem hiding this comment.
fair this is deprecated 🚀
|
Wow, this is fantastic! 👍 |
Updates all necessary links from api.slack.com/x to their equivalent on docs.slack.dev. I also did some copy editing and applying guidelines from our style guide. (changes are docs only)
Category (place an
xin each of the[ ])Requirements
Please read the Contributing guidelines and Code of Conduct before creating this issue or pull request. By submitting, you agree to those rules.