flourishlabs / saloon-slack
Saloon 连接器/Slack 请求
0.0.4
2023-03-11 16:24 UTC
Requires
- php: ^8.1
- sammyjo20/saloon: ^2.0
Requires (Dev)
- laravel/pint: ^1.2
- pestphp/pest: ^1.20
- spatie/ray: ^1.28
This package is auto-updated.
Last update: 2024-09-19 14:31:52 UTC
README
介绍
由 Saloon 驱动的 Slack 的力量Saloon 文档
安装
使用 composer 安装此包
composer require flourishlabs/saloon-slack
使用 - API
实例
创建一个实例
use FlourishLabs\SaloonSlack\SlackConnector; $slack = new SlackConnector('token');
通用 GET
$response = $slack->get('users.info', ['user' => 'W1234567890']); $response = $slack->get('admin.emoji.add', [ 'name' => 'pikachu_wave', 'url' => 'https://emojis.slackmojis.com/emojis/images/1643514747/7550/pikachu_wave.gif?1643514747', ]);
通用 POST
$slack->post('chat.postEphemeral', [ 'channel' => 'C1234567890', 'text' => 'Well howdy!', 'user' => 'U0HH0WDY', ]);
响应
响应对象上最实用的方法是 json
$response->json('channel_id'); $response->json('message_ts')
Saloon 文档 对响应的说明最好,但也提供了额外的 Slack 特定方法。
hasWarning(): bool
&warning(): string
来自 Slack 文档:对于可能成功完成的有问题调用,ok 将为 true,warning 属性将包含一个简短的机器可读警告代码(或多个警告的逗号分隔列表)。if ($response->hasWarning()) { Log::warning($response->warning()); }
hasError(): bool
&error(): string
来自 Slack 文档 对于失败的结果,error 属性将包含一个简短的机器可读错误代码。if ($response->hasError()) { Log::error("Ah poo! {$response->error()}"); }
使用 - OAuth
您还可以通过 SlackAuthConnector
与 Slack 的 OAuth 交互。
实例
创建一个 Auth 实例
use FlourishLabs\SaloonSlack\SlackAuthConnector; $oauth = new SlackAuthConnector( $clientId, $clientSecret, $redirectUri, );
生成 auth URL
您可能想要在会话中生成并存储 state
以在令牌交换期间进行验证。您需要将用户重定向到这个授权 URL
$oauth->getSlackAuthorizationUrl( $botScopes, $userScopes, );
交换
如果您需要访问机器人 和 用户令牌,则应返回响应。
$response = $oauth->getAccessToken( code: $request->get('code'), state: $request->get('state'), expectedState: $request->session()->get('slack.auth.state'), returnResponse: true, ); $botToken = $response->json('access_token'); $userToken = $response->json('authed_user.access_token');
如果您只需要机器人令牌,则可以使用标准的 Saloon 设置(他们的文档)。
$authenticator = $oauth->getAccessToken($code, $state);
然后您可以使用这些令牌作为正常方式来实例化一个 SlackConnector。
use FlourishLabs\SaloonSlack\SlackConnector; (new SlackConnector($response->json('access_token'))) ->post('chat.postMessage', ['channel' => 'C123', 'text' => 'Cor, this is good eh']);
测试
vendor/bin/pest
变更日志
请参阅 CHANGELOG 了解最近发生了哪些变化。
鸣谢
许可
MIT 许可证(MIT)。请参阅 许可文件 了解更多信息。