wgmv / laravel-slack-api by wgmv

Wrapper for Slack.com WEB API. Based on code from Vagner do Carmo.
21,760
6
2
Package Data
Maintainer Username: wgmv
Maintainer Contact: vluzrmos@gmail.com (Vagner do Carmo)
Package Create Date: 2017-09-08
Package Last Update: 2019-11-02
Home Page:
Language: PHP
License: MIT
Last Refreshed: 2024-04-18 15:15:27
Package Statistics
Total Downloads: 21,760
Monthly Downloads: 278
Daily Downloads: 17
Total Stars: 6
Total Watchers: 2
Total Forks: 1
Total Open Issues: 0

Laravel 5 and Lumen - Slack API

Latest Stable Version Total Downloads Latest Unstable Version License

StyleCI

This package provides a simple way to use the Slack API.

The package is a fork from https://github.com/Vluzrmos/laravel-slack-api The original package is not maintained and I made several changes that possibly make this version incompatible to the original.

Changes made:

  • removed functionality to lookup user by nickname: this package provides basic functionality
  • removed cache as it was not needed anymore
  • added basic tests
  • updated slack api options on a couple of methods
  • fixed minor bugs

Installation

composer require wgmv/laravel-slack-api

Installation on Laravel 5

The package has autodiscovery enabled. (A laravel 5.5 feature)

[
    'providers' => [
        Wgmv\SlackApi\SlackApiServiceProvider::class,
    ]
]

Configuration

This package uses slacks legacy tokens. Get you token here:

https://api.slack.com/custom-integrations/legacy-tokens

Configure your slack team token in config/services.php


[
    //...,
    'slack' => [
        'token' => 'your token here'
    ]
]

Installation on Lumen

I have not tested the lumen installation! Documentation from the original package:

Add the following line on bootstrap/app.php:

// $app->register('App\Providers\AppServiceProvider'); (by default that comes commented)
$app->register('Wgmv\SlackApi\SlackApiServiceProvider');

If you want to use facades, add this lines on bootstrap/app.php

class_alias('Wgmv\SlackApi\Facades\SlackApi', 'SlackApi');
//... and others

Otherwise, just use the singleton shortcuts:

/** @var \Wgmv\SlackApi\Contracts\SlackApi $slackapi */
$slackapi     = app('slack.api');

/** @var \Wgmv\SlackApi\Contracts\SlackChannel $slackchannel */
$slackchannel = app('slack.channel');

etc

Example Usage

//Lists all users on your team
SlackUser::lists(); 

//Lists all channels on your team
SlackChannel::lists(); 

//List all groups
SlackGroup::lists();

//Invite a new member to your team
SlackUserAdmin::invite("example@example.com", [
    'first_name' => 'John', 
    'last_name' => 'Doe'
]);

// or just use the helper

//Autoload the api
slack()->post('chat.postMessage', [...]);

//Autoload a Slack Method
slack('Chat')->message([...]);
slack('Team')->info();

All Injectable Contracts:

Generic API

Wgmv\SlackApi\Contracts\SlackApi

Allows you to do generic requests to the api with the following http verbs: get, post, put, patch, delete ... all allowed api methods you could see here: Slack Web API Methods.

Channels API

Wgmv\SlackApi\Contracts\SlackChannel

Allows you to operate channels: invite, archive, rename, join, kick, setPurpose ...

Chat API

Wgmv\SlackApi\Contracts\SlackChat

Allows you to send, update and delete messages with methods: delete, message, update.

Files API

Wgmv\SlackApi\Contracts\SlackFile

Allows you to send, get info, delete, or just list files: info, lists, upload, delete.

Groups API

Wgmv\SlackApi\Contracts\SlackGroup

Same methods of the SlackChannel, but that operates with groups and have adicional methods: open, close, createChild

Instant Messages API (Direct Messages)

Wgmv\SlackApi\Contracts\SlackInstantMessage

Allows you to manage direct messages to your team members.

Real Time Messages API

Wgmv\SlackApi\Contracts\SlackRealTimeMessage

Allows you list all channels and user presence at the moment.

Search API

Wgmv\SlackApi\Contracts\SlackSearch

Find messages or files.

Stars API

Wgmv\SlackApi\Contracts\SlackStar

List all of starred itens.

Team API

Wgmv\SlackApi\Contracts\SlackTeam

Get information about your team.

Users API

Wgmv\SlackApi\Contracts\SlackUser

Get information about an user on your team or just check your presence ou status.

Users Admin API

Wgmv\SlackApi\Contracts\SlackUserAdmin

Invite new members to your team.

License

DBAD License.