PHP code example of vivifyideas / slack-api

1. Go to this page and download the library: Download vivifyideas/slack-api library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

vivifyideas / slack-api example snippets




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




[
    'aliases' => [
        'SlackApi'              => VivifyIdeas\SlackApi\Facades\SlackApi::class,
        'SlackChannel'          => VivifyIdeas\SlackApi\Facades\SlackChannel::class,
        'SlackConversation'          => VivifyIdeas\SlackApi\Facades\SlackConversation::class,
        'SlackChat'             => VivifyIdeas\SlackApi\Facades\SlackChat::class,
        'SlackGroup'            => VivifyIdeas\SlackApi\Facades\SlackGroup::class,
        'SlackFile'             => VivifyIdeas\SlackApi\Facades\SlackFile::class,
        'SlackSearch'           => VivifyIdeas\SlackApi\Facades\SlackSearch::class,
        'SlackInstantMessage'   => VivifyIdeas\SlackApi\Facades\SlackInstantMessage::class,
        'SlackUser'             => VivifyIdeas\SlackApi\Facades\SlackUser::class,
        'SlackStar'             => VivifyIdeas\SlackApi\Facades\SlackStar::class,
        'SlackUserAdmin'        => VivifyIdeas\SlackApi\Facades\SlackUserAdmin::class,
        'SlackRealTimeMessage'  => VivifyIdeas\SlackApi\Facades\SlackRealTimeMessage::class,
        'SlackTeam'             => VivifyIdeas\SlackApi\Facades\SlackTeam::class,
        'SlackOAuth'          => VivifyIdeas\SlackApi\Facades\SlackOAuth::class,
        'SlackOAuthV2'          => VivifyIdeas\SlackApi\Facades\SlackOAuthV2::class,
    ]
]



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




class_alias('VivifyIdeas\SlackApi\Facades\SlackApi', 'SlackApi');
class_alias('VivifyIdeas\SlackApi\Facades\SlackChannel', 'SlackChannel');
class_alias('VivifyIdeas\SlackApi\Facades\SlackChat', 'SlackChat');
class_alias('VivifyIdeas\SlackApi\Facades\SlackGroup', 'SlackGroup');
class_alias('VivifyIdeas\SlackApi\Facades\SlackUser', 'SlackUser');
class_alias('VivifyIdeas\SlackApi\Facades\SlackTeam', 'SlackTeam');
//... and others




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

/** @var \VivifyIdeas\SlackApi\Contracts\SlackChat $slackchat */
$slackchat    = app('slack.chat');

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

//or

/** @var \VivifyIdeas\SlackApi\Contracts\SlackApi $slackapi */
$slackapi  = slack();

/** @var \VivifyIdeas\SlackApi\Contracts\SlackChat $slackchat */
$slackchat = slack('chat'); // or slack('slack.chat')

//...
//...




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




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

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

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

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

//Send a message to someone or channel or group
SlackChat::message('#general', 'Hello my friends!');

//Upload a file/snippet
SlackFile::upload([
    'filename' => 'sometext.txt',
    'title' => 'text',
    'content' => 'Nice contents',
    'channels' => 'C0440SZU6' //can be channel, users, or groups ID
]);

// Search for files or messages
SlackSearch::all('my message');

// Search for files
SlackSearch::files('my file');

// Search for messages
SlackSearch::messages('my message');

// or just use the helper

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

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




namespace App\Http\Controllers;

use VivifyIdeas\SlackApi\Contracts\SlackUser;

class YourController extends Controller{
    /** @var  SlackUser */
    protected $slackUser;

    public function __construct(SlackUser as $slackUser){
        $this->slackUser = $slackUser;
    }

    public function controllerMethod(){
        $usersList = $this->slackUser->lists();
    }
}




/** @var SlackChannel $channel **/
$channel = $slack->load('Channel');
$channel->lists();

/** @var SlackChat $chat **/
$chat = $slack->load('Chat');
$chat->message('D98979F78', 'Hello my friend!');

/** @var SlackUserAdmin $chat **/
$admin = $slack('UserAdmin'); //Minimal syntax (invokable)
$admin->invite('[email protected]');

bash
php artisan vendor:publish --provider="VivifyIdeas\SlackApi\SlackApiServiceProvider"