craftyx / slack-api
Slack.com WEB API 的包装器。基于 Vagner do Carmo 的版本,但兼容 GuzzleHttp6
Requires
- php: >=7.2.5
- guzzlehttp/guzzle: ~5.3|~6.0
- illuminate/cache: 7.*
- illuminate/support: 7.*
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 进行通用请求: get
、post
、put
、patch
、delete
... 所有在此处可看到的所有允许的 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
允许您操作频道: invite
、archive
、rename
、join
、kick
、setPurpose
...
聊天 API
Craftyx\SlackApi\Contracts\SlackChat
允许您使用 delete
、message
、update
方法发送、更新和删除消息。
文件 API
Craftyx\SlackApi\Contracts\SlackFile
允许您发送、获取信息、删除或仅列出文件: info
、lists
、upload
、delete
。
组 API
Craftyx\SlackApi\Contracts\SlackGroup
与 SlackChannel 相同的方法,但操作组并具有附加方法: open
、close
、createChild
即时消息 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
邀请新成员加入您的团队。