{"id":13534896,"url":"https://github.com/vluzrmos/laravel-slack-api","last_synced_at":"2025-04-14T20:56:17.843Z","repository":{"id":45437422,"uuid":"31194433","full_name":"vluzrmos/laravel-slack-api","owner":"vluzrmos","description":"Laravel e Lumen Wrapper for Slack.com Web API: https://api.slack.com","archived":false,"fork":false,"pushed_at":"2024-11-17T14:08:43.000Z","size":244,"stargazers_count":100,"open_issues_count":7,"forks_count":61,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-07T16:11:15.979Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vluzrmos.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-02-23T04:52:06.000Z","updated_at":"2025-03-12T08:32:36.000Z","dependencies_parsed_at":"2024-06-18T13:32:16.934Z","dependency_job_id":"e9d5f9e4-0e91-40ef-836d-824843a957e1","html_url":"https://github.com/vluzrmos/laravel-slack-api","commit_stats":{"total_commits":81,"total_committers":19,"mean_commits":"4.2631578947368425","dds":0.5061728395061729,"last_synced_commit":"993f6478850a58c9080102d75136734e19a1b960"},"previous_names":[],"tags_count":33,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vluzrmos%2Flaravel-slack-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vluzrmos%2Flaravel-slack-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vluzrmos%2Flaravel-slack-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vluzrmos%2Flaravel-slack-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vluzrmos","download_url":"https://codeload.github.com/vluzrmos/laravel-slack-api/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248961143,"owners_count":21189991,"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":[],"created_at":"2024-08-01T08:00:46.041Z","updated_at":"2025-04-14T20:56:17.824Z","avatar_url":"https://github.com/vluzrmos.png","language":"PHP","funding_links":[],"categories":["PHP"],"sub_categories":["Laravel"],"readme":"## Laravel e Lumen - Slack API\n\n[![Join the chat at https://gitter.im/vluzrmos/laravel-slack-api](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/vluzrmos/laravel-slack-api?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge)\n\nThis package provides a simple way to use [Slack API](https://api.slack.com/web#methods).\n\n[![Latest Stable Version](https://poser.pugx.org/vluzrmos/slack-api/v/stable.svg)](https://packagist.org/packages/vluzrmos/slack-api) [![Total Downloads](https://poser.pugx.org/vluzrmos/slack-api/downloads.svg)](https://packagist.org/packages/vluzrmos/slack-api) [![Latest Unstable Version](https://poser.pugx.org/vluzrmos/slack-api/v/unstable.svg)](https://packagist.org/packages/vluzrmos/slack-api) [![License](https://poser.pugx.org/vluzrmos/slack-api/license.svg)](https://packagist.org/packages/vluzrmos/slack-api)\n\n## Instalation\n\n`composer require vluzrmos/slack-api`\n\n## Instalation on Laravel\nAdd to `config/app.php`:\n\nThis package uses auto-discovery laravel's feature, the service provider and all the facades will be automatic discovered.\n\nService Provider:  `\\Vluzrmos\\SlackApi\\SlackApiServiceProvider::class`\n\nFacades:\n\n```php\n[\n    'SlackApi'              =\u003e Vluzrmos\\SlackApi\\Facades\\SlackApi::class,\n    'SlackChannel'          =\u003e Vluzrmos\\SlackApi\\Facades\\SlackChannel::class,\n    'SlackChat'             =\u003e Vluzrmos\\SlackApi\\Facades\\SlackChat::class,\n    'SlackGroup'            =\u003e Vluzrmos\\SlackApi\\Facades\\SlackGroup::class,\n    'SlackFile'             =\u003e Vluzrmos\\SlackApi\\Facades\\SlackFile::class,\n    'SlackSearch'           =\u003e Vluzrmos\\SlackApi\\Facades\\SlackSearch::class,\n    'SlackInstantMessage'   =\u003e Vluzrmos\\SlackApi\\Facades\\SlackInstantMessage::class,\n    'SlackUser'             =\u003e Vluzrmos\\SlackApi\\Facades\\SlackUser::class,\n    'SlackStar'             =\u003e Vluzrmos\\SlackApi\\Facades\\SlackStar::class,\n    'SlackUserAdmin'        =\u003e Vluzrmos\\SlackApi\\Facades\\SlackUserAdmin::class,\n    'SlackRealTimeMessage'  =\u003e Vluzrmos\\SlackApi\\Facades\\SlackRealTimeMessage::class,\n    'SlackTeam'             =\u003e Vluzrmos\\SlackApi\\Facades\\SlackTeam::class,\n    'SlackOAuth'          =\u003e Vluzrmos\\SlackApi\\Facades\\SlackOAuth::class,\n    'SlackOAuthV2'          =\u003e Vluzrmos\\SlackApi\\Facades\\SlackOAuthV2::class,\n]\n```\n\n## Instalation on Lumen\n\nAdd that line on `bootstrap/app.php`:\n\n```php\n\u003c?php\n// $app-\u003eregister('App\\Providers\\AppServiceProvider'); (by default that comes commented)\n$app-\u003eregister('Vluzrmos\\SlackApi\\SlackApiServiceProvider');\n\n?\u003e\n```\n\nIf you want to use facades, add this lines on \u003ccode\u003ebootstrap/app.php\u003c/code\u003e\n\n```php\n\u003c?php\n\nclass_alias('Vluzrmos\\SlackApi\\Facades\\SlackApi', 'SlackApi');\nclass_alias('Vluzrmos\\SlackApi\\Facades\\SlackChannel', 'SlackChannel');\nclass_alias('Vluzrmos\\SlackApi\\Facades\\SlackChat', 'SlackChat');\nclass_alias('Vluzrmos\\SlackApi\\Facades\\SlackGroup', 'SlackGroup');\nclass_alias('Vluzrmos\\SlackApi\\Facades\\SlackUser', 'SlackUser');\nclass_alias('Vluzrmos\\SlackApi\\Facades\\SlackTeam', 'SlackTeam');\n//... and others\n\n?\u003e\n```\n\nOtherwise, just use the singleton shortcuts:\n\n```php\n\u003c?php\n\n/** @var \\Vluzrmos\\SlackApi\\Contracts\\SlackApi $slackapi */\n$slackapi     = app('slack.api');\n\n/** @var \\Vluzrmos\\SlackApi\\Contracts\\SlackChat $slackchat */\n$slackchat    = app('slack.chat');\n\n/** @var \\Vluzrmos\\SlackApi\\Contracts\\SlackChannel $slackchannel */\n$slackchannel = app('slack.channel');\n\n//or\n\n/** @var \\Vluzrmos\\SlackApi\\Contracts\\SlackApi $slackapi */\n$slackapi  = slack();\n\n/** @var \\Vluzrmos\\SlackApi\\Contracts\\SlackChat $slackchat */\n$slackchat = slack('chat'); // or slack('slack.chat')\n\n//...\n//...\n\n?\u003e\n```\n\n## Slack OAuth Token\n\nTo get your slack token, you must create an app on [Slack Apps](https://api.slack.com/apps) and then give the permissions that you need at your app page on side menu \"Features\" -\u003e \"OAuth \u0026 Permissions\", and then go to \"Scopes\" section, the token can be a `Bot Token` or `User Token` as you need.\n\nThen re/install the app to your workspace.\n\n\u003e Note: If you edit any permission you must reinstall the app to your workspace.\n\n## Configuration\n\nConfigure your slack team token in \u003ccode\u003econfig/services.php\u003c/code\u003e\n\n```php\n\u003c?php\n\n[\n    //...,\n    'slack' =\u003e [\n        'token' =\u003e 'your token here'\n    ]\n]\n\n?\u003e\n```\n\nBy default all api methods will return objects, to change it to associative array first publish slack-api config, and then set `response_to_assoc_array` to true\n\n```bash\nphp artisan vendor:publish --provider=\"Vluzrmos\\SlackApi\\SlackApiServiceProvider\"\n```\n\n## Usage\n\n```php\n\u003c?php\n\n//Lists all users on your team\nSlackUser::lists(); //all()\n\n//Lists all channels on your team\nSlackChannel::lists(); //all()\n\n//List all groups\nSlackGroup::lists(); //all()\n\n//Invite a new member to your team\nSlackUserAdmin::invite(\"example@example.com\", [\n    'first_name' =\u003e 'John',\n    'last_name' =\u003e 'Doe'\n]);\n\n//Send a message to someone or channel or group\nSlackChat::message('#general', 'Hello my friends!');\n\n//Upload a file/snippet\nSlackFile::upload([\n    'filename' =\u003e 'sometext.txt',\n    'title' =\u003e 'text',\n    'content' =\u003e 'Nice contents',\n    'channels' =\u003e 'C0440SZU6' //can be channel, users, or groups ID\n]);\n\n// Search for files or messages\nSlackSearch::all('my message');\n\n// Search for files\nSlackSearch::files('my file');\n\n// Search for messages\nSlackSearch::messages('my message');\n\n// or just use the helper\n\n//Autoload the api\nslack()-\u003epost('chat.postMessage', [...]);\n\n//Autoload a Slack Method\nslack('Chat')-\u003emessage([...]);\nslack('Team')-\u003einfo();\n\n?\u003e\n```\n\n## Using Dependency Injection\n\n```php\n\u003c?php\n\nnamespace App\\Http\\Controllers;\n\nuse Vluzrmos\\SlackApi\\Contracts\\SlackUser;\n\nclass YourController extends Controller{\n    /** @var  SlackUser */\n    protected $slackUser;\n\n    public function __construct(SlackUser as $slackUser){\n        $this-\u003eslackUser = $slackUser;\n    }\n\n    public function controllerMethod(){\n        $usersList = $this-\u003eslackUser-\u003elists();\n    }\n}\n\n?\u003e\n```\n\n## All Injectable Contracts:\n\n### Generic API\n`Vluzrmos\\SlackApi\\Contracts\\SlackApi`\n\nAllows you to do generic requests to the api with the following http verbs:\n`get`, `post`, `put`, `patch`, `delete` ... all allowed api methods you could see here: [Slack Web API Methods](https://api.slack.com/methods).\n\nAnd is also possible load a SlackMethod contract:\n\n```php\n\u003c?php\n\n/** @var SlackChannel $channel **/\n$channel = $slack-\u003eload('Channel');\n$channel-\u003elists();\n\n/** @var SlackChat $chat **/\n$chat = $slack-\u003eload('Chat');\n$chat-\u003emessage('D98979F78', 'Hello my friend!');\n\n/** @var SlackUserAdmin $chat **/\n$admin = $slack('UserAdmin'); //Minimal syntax (invokable)\n$admin-\u003einvite('jhon.doe@example.com');\n\n?\u003e\n```\n\n### Channels API\n`Vluzrmos\\SlackApi\\Contracts\\SlackChannel`\n\nAllows you to operate channels:\n`invite`, `archive`, `rename`, `join`, `kick`, `setPurpose` ...\n\n\n### Chat API\n`Vluzrmos\\SlackApi\\Contracts\\SlackChat`\n\nAllows you to send, update and delete messages with methods:\n`delete`, `message`, `update`.\n\n### Files API\n`Vluzrmos\\SlackApi\\Contracts\\SlackFile`\n\nAllows you to send, get info, delete,  or just list files:\n`info`, `lists`, `upload`, `delete`.\n\n### Groups API\n`Vluzrmos\\SlackApi\\Contracts\\SlackGroup`\n\nSame methods of the SlackChannel, but that operates with groups and have adicional methods:\n`open`, `close`, `createChild`\n\n### Instant Messages API (Direct Messages)\n`Vluzrmos\\SlackApi\\Contracts\\SlackInstantMessage`\n\nAllows you to manage direct messages to your team members.\n\n### Real Time Messages API\n`Vluzrmos\\SlackApi\\Contracts\\SlackRealTimeMessage`\n\nAllows you list all channels and user presence at the moment.\n\n\n### Search API\n`Vluzrmos\\SlackApi\\Contracts\\SlackSearch`\n\nFind messages or files.\n\n### Stars API\n`Vluzrmos\\SlackApi\\Contracts\\SlackStar`\n\nList all of starred itens.\n\n### Team API\n`Vluzrmos\\SlackApi\\Contracts\\SlackTeam`\n\nGet information about your team.\n\n### Users API\n`Vluzrmos\\SlackApi\\Contracts\\SlackUser`\n\nGet information about an user on your team or just check your presence ou status.\n\n### Users Admin API\n`Vluzrmos\\SlackApi\\Contracts\\SlackUserAdmin`\n\nInvite new members to your team.\n\n### OAuth API\n`Vluzrmos\\SlackApi\\Contracts\\SlackOAuth`\n\nMethods in oauth slack api namespace.\n\n### OAuthV2 API\n`Vluzrmos\\SlackApi\\Contracts\\SlackOAuthV2`\n\nMethods in oauth v2 slack api namespace.\n\n\n## License\n\n[DBAD License](https://dbad-license.org).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvluzrmos%2Flaravel-slack-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvluzrmos%2Flaravel-slack-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvluzrmos%2Flaravel-slack-api/lists"}