{"id":17343419,"url":"https://github.com/firesphere/silverstripe-stripeslack","last_synced_at":"2025-04-14T19:54:59.502Z","repository":{"id":62504945,"uuid":"105328914","full_name":"Firesphere/silverstripe-stripeslack","owner":"Firesphere","description":"Add a form to your website to invite users to sign up with your Slack group","archived":false,"fork":false,"pushed_at":"2019-10-15T19:29:38.000Z","size":73,"stargazers_count":3,"open_issues_count":2,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-28T08:21:42.632Z","etag":null,"topics":["cms","hacktoberfest","invite-users","party","silverstripe","slack"],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Firesphere.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"license.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-09-30T00:52:48.000Z","updated_at":"2024-07-23T08:25:26.000Z","dependencies_parsed_at":"2022-11-02T12:31:01.606Z","dependency_job_id":null,"html_url":"https://github.com/Firesphere/silverstripe-stripeslack","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Firesphere%2Fsilverstripe-stripeslack","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Firesphere%2Fsilverstripe-stripeslack/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Firesphere%2Fsilverstripe-stripeslack/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Firesphere%2Fsilverstripe-stripeslack/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Firesphere","download_url":"https://codeload.github.com/Firesphere/silverstripe-stripeslack/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248952176,"owners_count":21188422,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cms","hacktoberfest","invite-users","party","silverstripe","slack"],"created_at":"2024-10-15T16:09:20.637Z","updated_at":"2025-04-14T19:54:59.482Z","avatar_url":"https://github.com/Firesphere.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# StripeSlack\n\nInviting users to your public Slack channel is pretty hard to automate.\n\nThis module intents to make it at least a bit easier.\n\nAlthough the initial steps seem overwhelming, I've tried to write it out as detailed as possible.\nOnce you've done it once, the next time will be a breeze.\n\n## Why StripeSlack\n\nUnlike other services that are require a third party to have full administrative access to your Slack Workspace,\nStripeSlack is under your full control. You don't need to trust a third party to be trustworthy and not operate simply\nto collect email addresses.\n\nAlthough the submissions are stored in the database, this is on your own server. The reason for storing is so you can\nre-send invites if something went wrong.\n\n## Disclaimer\n\nUnless you add a checkbox asking the user to also sign up for your newsletter, this module is explicitly not intended\nto add this functionality and therefore, please do not abuse the storage of email addresses for this purpose.\n\nBe a decent human being.\n\n## Prerequisites\n\nSomebody in your team needs to be an admin on your Slack usergroup, or have contact with an admin, to have it set up.\n\n## Caveats\n\nIt looks pretty hard to get it all set up with Slack. You'll need to jump through quite some hoops. Please follow the instructions closely.\nWhen done, you'll find it wasn't actually that hard after all, just a few steps that seem somewhat confusing at first.\n\n## Installation\n\n- Option 1, with Composer:\n\n`composer require firesphere/stripeslack`\n\n- Option 2, download:\n\nDownload the zip from GitHub\n\nFinally, run `https://yourdomain.com/dev/build?flush=all`\n\n## Setting up Slack\n\n### Note:\n- To do this, you need to be an admin on the slack channel.\n    - The administrator taking the steps will be the person who will be sending out the invites.\n- Don't be taken aback by the amount of steps. I've tried to be as detailed as possible.\n\n1. Go to the [Slack API site](https://api.slack.com/web).\n2. Scroll down to the **Authentication** heading and click on *Register your application*.\n3. You'll be presented with a Modal where you can give the app a name and a dropdown to select the group you want the application to work for.\n4. After creation, you'll be presented with the **Basic Information** screen.\n5. Click on *Add features and functionality*.\n6. Click on *Permissions*.\n7. Scroll down to *Redirect URLs*.\n8. Enter the URL from where the application will operate, e.g. `https://www.silverstripe.org`. Preferably it's an `https` site.\n9. Click on the *Save URLs* button.\n10. Scroll further down to **Scopes**.\n11. Under *Select Permission Scopes*, select *Administer the workspace*.\n12. Click on *Save changes*.\n13. Scroll back up to the top and click the button *Install App to Workspace*.\n14. On the left, click on *Basic Information* to go back to the basic information.\n15. You are now done setting up Slack.\n\n## Setting up StripeSlack\n\nAfter setting up Slack, a few more steps are needed.\n\n1. In a new tab or window, open your CMS and go to *Settings*.\n2. Select the *Slack* tab.\n3. Enter the url of your Slack Workspace (e.g. `https://silverstripe-users.slack.com`).\n4. Select the default channel you want your users to be invited for (Usually General).\n    1. You can get the ID by right clicking on your channel and select \"copy link\". \n    2. Open the copied link in a browser and copy the part after \"messages/\".\n    3. Paste this code in to *ID of your channel* field.\n5. Go back to your Slack application on the *Basic Information* and scroll down to see the **App Credentials**.\n6. Copy the *Client ID*.\n7. Paste the Client ID in the CMS in the Client ID field.\n8. Back to the Slack Application, click on *show* under *Client Secret*.\n9. Copy the now visible *Client Secret*.\n10. Paste the Client Secret in the CMS *Client Secret* field. (Note that it's pasted as a password, don't worry, it's stored correctly).\n11. Select a page on your website to redirect the user to, when the invitation has been sent successfully and one for when it was unsuccessful.\n12. Save the site settings\n13. You will now be presented with a link to click, to Authorize your application.\n14. Click the link to be redirected to Slack, which will ask you for Administrator Privileges for this app.\n    1. The privileges are fully under your control, and the app is installed locally\n    2. No third party will get administrative access.\n    3. This repository does _not_ collect any data from you.\n15. After accepting, you will be redirected back to the CMS. Your application is now ready to go.\n\n## Adding the form to your website\n\nYou can create a StripeSlackPage type, which will help you set up everything. It allows you to set the success and error message as well.\n\nIf you want to place the signup-form in the footer for example, you can, at the place of choice to add the form, \nsimply include `$SlackForm` in your template (You might need to add `$Top` if needed) and the form should appear.\n\nTextual changes can be made in a translation file in your base project. See `stripeslack\\lang\\en.yml` for an example.\n\n### Styling and design of the form\n\nThe form relies completely on the provided `FormField` templates. So styling is all up to you.\n\n## Todo\n\n- [|] Add tests\n- [ ] Make invites sent to a certain channel\n- [x] Re-try sending invites via the CMS\n- [ ] Move away from `RestfulService` (Removed in SS4) to using `Guzzle`\n- [ ] SilverStripe 4 compatible version\n- [x] Add a shortcode to use [slackform] from the CMS\n\n# Cow?\n\n```\n\n               /( ,,,,, )\\\n              _\\,;;;;;;;,/_\n           .-\"; ;;;;;;;;; ;\"-.\n           '.__/`_ / \\ _`\\__.'\n              | (')| |(') |\n              | .--' '--. |\n              |/ o     o \\|\n              |           |\n             / \\ _..=.._ / \\\n            /:. '._____.'   \\\n           ;::'    / \\      .;\n           |     _|_ _|_   ::|\n         .-|     '==o=='    '|-.\n        /  |  . /       \\    |  \\\n        |  | ::|         |   | .|\n        |  (  ')         (.  )::|\n        |: |   |;  U U  ;|:: | `|\n        |' |   | \\ U U / |'  |  |\n        ##V|   |_/`\"\"\"`\\_|   |V##\n           ##V##         ##V##\n```\n\n# License\n\nCopyright 2017 Firesphere\n\nRedistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:\n\n1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\n\n2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.\n\n3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n### License of third party\n\nThe image used for Slack in the CMS is the grayscale image provided by Slack as their official image to use. Copyright of image is with Slack Ltd.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffiresphere%2Fsilverstripe-stripeslack","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffiresphere%2Fsilverstripe-stripeslack","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffiresphere%2Fsilverstripe-stripeslack/lists"}