craftyx/slack-api

Slack.com WEB API 的包装器。基于 Vagner do Carmo 的版本,但兼容 GuzzleHttp6

3.0.0 2020-03-04 21:17 UTC

This package is auto-updated.

Last update: 2024-09-05 06:42:18 UTC


README

本软件包提供了一种简单的方式来使用 Slack API。它基于优秀的 Vluzrmos 软件包,但兼容 Guzzle6

安装

composer require craftyx/slack-api

在 Laravel 5 上的安装

添加到 config/app.php

<?php 

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

?>

类名表示法是可选的。

如果您需要,请将外观添加到您的别名中

<?php

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

?>

类名表示法是可选的。

配置

config/services.php 中配置您的 Slack 团队令牌

<?php

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

?>

用法

<?php

//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("example@example.com", [
    '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();

?>

使用依赖注入

<?php 

namespace App\Http\Controllers;    
    
use Craftyx\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();
    }
}

?>

所有可注入协议

通用 API

Craftyx\SlackApi\Contracts\SlackApi

允许您使用以下 HTTP 动词对 API 进行通用请求: getpostputpatchdelete ... 所有在此处可看到的所有允许的 API 方法: Slack Web API 方法

还可以加载 SlackMethod 协议

<?php 

/** @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('jhon.doe@example.com'); 

?>

频道 API

Craftyx\SlackApi\Contracts\SlackChannel

允许您操作频道: invitearchiverenamejoinkicksetPurpose ...

聊天 API

Craftyx\SlackApi\Contracts\SlackChat

允许您使用 deletemessageupdate 方法发送、更新和删除消息。

文件 API

Craftyx\SlackApi\Contracts\SlackFile

允许您发送、获取信息、删除或仅列出文件: infolistsuploaddelete

组 API

Craftyx\SlackApi\Contracts\SlackGroup

与 SlackChannel 相同的方法,但操作组并具有附加方法: openclosecreateChild

即时消息 API(直接消息)

Craftyx\SlackApi\Contracts\SlackInstantMessage

允许您管理团队成员的直接消息。

实时消息 API

Craftyx\SlackApi\Contracts\SlackRealTimeMessage

允许您列出所有频道和当前的用户在线状态。

搜索 API

Craftyx\SlackApi\Contracts\SlackSearch

查找消息或文件。

星标 API

Craftyx\SlackApi\Contracts\SlackStar

列出所有已标记的项目。

团队 API

Craftyx\SlackApi\Contracts\SlackTeam

获取有关您的团队的信息。

用户 API

Craftyx\SlackApi\Contracts\SlackUser

获取有关您的团队中用户的信息或仅检查您的在线状态。

用户管理 API

Craftyx\SlackApi\Contracts\SlackUserAdmin

邀请新成员加入您的团队。

许可证

DBAD 许可证.