Rails:使用 Slack 工作区进行身份验证



目前我正在尝试将Slack集成添加到应用程序中。应用上的用户应同时在应用上发帖,并自动发布到自己的 Slack 工作区。

Gemomniauth_slack可以访问我自己拥有的工作区,但这不适用于使用其他工作区进行身份验证。

工作区的身份验证需要以下信息: * client_id *范围 * redirect_uri *州 *团队

像这样更新omniauth.rb

Rails.application.config.middleware.use OmniAuth::Builder do
provider :slack,
'CLIENT_ID',
scope: 'team:read,users:read,identify,bot',
token: "XXXXXXXXXXXXXXXXXXXXXX"
end

其他代码在这里。

apps/controllers/slack_controller.rb

class SlackController < ApplicationController
def callback
p request.env['omniauth.auth'].info
redirect_to '/'
end    
end

apps/views/home/index.html.erb

<%= link_to 'Slack authentication', '/auth/slack' %>

宝石文件

gem 'omniauth-slack'

config/routes.eb

Rails.application.routes.draw do
root 'home#index'
get 'auth/:provider/callback' => 'slack#callback'
# For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html
end

也许你需要放这样的东西

Rails.application.config.middleware.use OmniAuth::Builder do
provider :slack,
ENV['CLIENT_ID'],
ENV['CLIENT_SECRET'],
scope:'chat:write,commands,im:write,users:read'
end 

如果您要使用 API 方法,则需要使用令牌配置 Slack。

class SlackMessages
def Initialize
Slack.configure do |config|
config.token = "xoxp-xxxxxx234234324..."
end
@client = ::Slack::Web::Client.new
end
def postmessage
@client.chat_postMessage(options)
end
end

创建一个名为 Slack 的初始值设定项,并放置如下所示的内容:

Slack::Events.configure do |config|
config.signing_secret = ENV['SIGNING_SECRET']
end

相关内容

最新更新