Rails 与 Slack 整合指南 (1)

栏目: Ruby · 发布时间: 8年前

内容简介:整理一下之前的 Slack 整合笔记。接 Slack 还是有挺多坑的。这篇主要写登入整合。整合 slack 主要靠三个 gem把 devise 先跑起来,然后 view 也下载下来

整理一下之前的 Slack 整合笔记。接 Slack 还是有挺多坑的。这篇主要写登入整合。

整合 slack 主要靠三个 gem devise , omniauth , omniauth-slack 。

安装 devise

  • bundle install devise
  • rails g devise:install
  • rails g devise user
  • rails g devise:views

把 devise 先跑起来,然后 view 也下载下来

安装 omniauth

  • bundle install omniauth
  • user model 挂上 omniauthable
Rails 与 Slack 整合指南 (1)

安装 omniauth-slack

  • bundle install omniauh-slack
  • 先去 https://api.slack.com/apps 申请 API KEY。里面只有两个会用到:
    • Client ID
    • Client Secret
Rails 与 Slack 整合指南 (1)
  • 设定权限。记得要特别设 identity.email 才拿得到 email
config/initiailizers/devise.rb
config.omniauth :slack, ENV['SLACK_APP_ID'], ENV['SLACK_APP_SECRET'], scope: 'identity.basic,identity.email'   # 用 identity.email 能拿到 email

  config.omniauth :slack, ENV['SLACK_APP_ID'], ENV['SLACK_APP_SECRET'], scope: 'team:read,users:read'

设定 callbacks 网址

Rails 与 Slack 整合指南 (1)

记得要设 callbacks

Rails App 怎么接进来的资料

config/routes.rb
Rails.application.routes.draw do
  devise_for :users, :controllers => {  :omniauth_callbacks => "users/omniauth_callbacks"}
end
  • User has_many :team_users , has_many :teams, :through => :team_users

讲解细节

  • devise 与 omniauth-slack 生成的认证连结会是 https://localhost:3000/users/auth/slackcallback 。 也会从这里回来。
  • 另外造一个 users/omniauth_callbacks 的 controller 来收 callback
  • 做一个 User.find_or_create_for_slack 去解析 request.env["omniauth.auth"] 收进来的资料
  • 收进来的资料格式,omniauth-slack 这里有整理一份 https://github.com/kmrshntr/omniauth-slack
  • 不过还是要一直开著 Rails.logger.warn 去看一下打进来的资料。因为 scope 不对,会拿不到关键信息。
  • scope 列表在这: https://api.slack.com/docs/oauth-scopes
  • 主要有用的是 identity.basic,identity.email, team:read, users:read
  • authorization 记的表主要是 provider 与 slack 给的 uid

几个坑

  • 网上范例只给 identity.basic ,这是拿不到东西的。而且 slack 对拿 email 很严。搞了一晚上才确定 identity.email 才拿得到 email,非常蛋疼。
  • Rails 改版了,现在要从 request.env 才拿得到资料
  • slack 回传资料非常巢状,数错层就拉不到资料。有些资料要反覆调试 scope 才拿得到。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。

信息简史

信息简史

[美] 詹姆斯·格雷克 / 高博 / 人民邮电出版社 / 2013-10 / 69.00元

人类与信息遭遇的历史由来已久。詹姆斯•格雷克笔下的这段历史出人意料地从非洲的鼓语讲起(第1章)。非洲土著部落在尚未直接跨越到移动电话之前,曾用鼓声来传递讯息,但他们是如何做到的呢?后续章节进而讲述了这段历史上几个影响深远的关键事件,包括文字的发明(第2章)、罗伯特•考德里的第一本英语词典(第3章)、查尔斯•巴贝奇的差分机与爱达•拜伦的程序(第4章)、沙普兄弟的信号塔与摩尔斯电码(第5章)。 ......一起来看看 《信息简史》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

SHA 加密
SHA 加密

SHA 加密工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具