klabcyscorpions/slack-notify

该软件包已被废弃,不再维护。没有建议的替代软件包。

为PHP发送Slack通知

v2.0.1 2016-05-24 07:33 UTC

README

Build Status

SlackNotify 是一个PHP库,允许您使用入站Webhook集成向Slack发送消息。

依赖项

此库需要安装CurlMemcached扩展

  • Curl 扩展用于调用并向Slack的WebHook URL发送有效负载
  • Memcached 扩展将用于检查发送限制。限制可以设置为countduration

安装

  • 我们建议使用Composer
composer require klabcyscorpions/slack-notify:v2.0.0
  • 或者,您可以在发行页面下载slack-notify.zip。只需解压它并将文件包含在src/目录下

设置(Slack)

  1. 创建一个入站WebHook集成。
  2. 选择一个要发布消息的频道。
  3. 注意WebHook URL并将其添加到配置中。

用法

  1. 定义必需的客户端设置。

    define('WEBHOOK_URL', 'https://api.slack.com/webhook-url/xxxx/xxxx');
    
    /** Memcached connection settings */
    define('MEMCACHED_HOST', 'localhost');
    define('MEMCACHED_PORT', 11211);
    define('MEMCACHED_KEY', 'slack-report-key');
    
    /** Limit to max of 10 sends per 60 seconds */
    define('LIMIT_COUNT', 10);
    define('LIMIT_DURATION', 60);
  2. 使用定义的设置创建新的LimitMemcachedNotifySlack

    use KLabCyscorpions\SlackNotify\Limit;
    use KLabCyscorpions\SlackNotify\Notify;
    use KLabCyscorpions\SlackNotify\Slack;
    
    //create limit object
    $limit = new Limit(LIMIT_COUNT, LIMIT_DURATION);
    
    //create memcached object using defined Memcached class
    //this will be used to check send limit
    $memcached = new Memcached();
    $memcached->addServer(MEMCACHED_HOST, MEMCACHED_PORT);
    
    //create notify object instance
    $notify = new Notify($memcached, $limit, MEMCACHED_KEY);
    
    //create slack object
    $slack = new Slack(WEBHOOK_URL);
  3. 根据创建的SlackNotify类的实例创建新的Client实例

    return new Client($slack, $notify);
  4. 生成有效负载并将其发送到Slack。查看Slack格式化API以检查如何创建有效负载数据。

    $payload = array(
        'channel' => '#general',
        'text' => 'This message is sent to #general by SlackNotify!'
    );
    
    $client->send($payload);

    发送方法如果在调用Slack Webhook URL时没有返回ok响应,则可能会抛出SlackNotifyException。查看错误日志文件以查看Webhook响应消息。

其他方法

方法 描述
$client->disableLimit() 在发送到Slack之前禁用限制检查
$client->getNotify() 获取Notify类实例
$client->getSlack() 获取Notify类实例