Ruby On Rails 环境中集成Slack
来源:互联网 发布:钓鱼软件下载 编辑:程序博客网 时间:2024/04/29 06:26
记录一下, 直接上代码:
相关API文档:https://api.slack.com/
def self.add_ann(group, user, title, url, desc, slack_info_id= nil, color= '#ffba01') team_url= $HOST + "/team/#{group.g_name}" title= title.gsub('"', "\\\"") desc= desc.gsub('"', "\\\"") desc= "\\\"" + desc + "\\\"" content = PlainText.plain_text(desc) format= "{ \"text\": \"*#{user.name}* made a highlight on <#{url}|#{title}> \", \"attachments\": [{ \"fallback\": \"*#{user.name}* <#{url}|#{title}>\", \"text\": \"#{content}\", \"color\": \"#{color}\" }] }" msg= {:payload=> format} send_ann_slack_message(group.id, user.id, slack_info_id, msg) end def self.send_ann_slack_message(group_id, user_id, slack_info_id, msg) api_urls= [] if !slack_info_id.blank? slack_info= get_group_slack_info_by_id(slack_info_id) api_urls << slack_info.slack_incoming_webhook_url if !slack_info.blank? else slack_info= get_group_slack_info_by_status(group_id, [STATUS_SEND_ANN, STATUS_SEND_POST_AND_ANN]) slack_info.each do |v| api_urls << v.slack_incoming_webhook_url end end api_urls.each do |slack_incoming_webhook_url| slack_ret= http_request(slack_incoming_webhook_url, msg) end end private def self.http_request(url, params, json= false) Timeout::timeout($REQUEST_TIME) { agent = Mechanize.new uri = url page = agent.post(uri, params) if json== true r = page.body ? JSON.parse(page.body): nil return r end return page.body } rescue Timeout::Error #p "http_request timeout." Rails.logger.error "http request timeout. " nil rescue => e #p "http_request error.", e Rails.logger.error "http request error. #{e.inspect}" nil end
0 0
- Ruby On Rails 环境中集成Slack
- 将Emacs作为Ruby On Rails集成开发环境
- Ruby on Rails 环境搭建
- Ruby on Rails 开发环境
- ruby on rails环境配置
- ruby on rails环境搭建
- Ruby on rails 环境搭建
- ruby on rails 环境搭建
- Ruby On Rails环境搭建
- ruby on rails 环境搭建
- ruby on rails 环境搭建
- ruby on rails环境搭建
- Ruby on rails 环境安装
- 搭建Ruby on Rails 环境
- 搭建Ruby on Rails 环境
- ruby on rails环境搭建
- ubuntu 14.04中安装ruby on rails环境(填坑版)
- ubuntu 14.04中安装 ruby on rails 环境(填坑)
- caffe的Leveldb格式数据一(官方介绍)
- LeetCode 047 Permutations II
- Insert Image into Record from Clipboard
- js中 push pop shift unshift方法
- springMVC两种方式实现多文件上传及效率比较
- Ruby On Rails 环境中集成Slack
- Redis HA方案之sentinel
- org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representatio
- JS控制按钮10秒钟后可用的方法
- 在字符串中找出连续最长的数字串
- 浅谈C# Socket编程及C#如何使用多线程
- VC 维度(七)
- php中图像处理
- C++标准库--cctype