Chatwoot/config/initializers/bot.rb
2021-06-07 13:58:01 +05:30

41 lines
1.1 KiB
Ruby

# Remember that Rails only eager loads everything in its production environment.
# In the development and test environments, it only requires files as you reference constants.
# You'll need to explicitly load app/bot
unless Rails.env.production?
bot_files = Dir[Rails.root.join('app', 'bot', '**', '*.rb')]
bot_reloader = ActiveSupport::FileUpdateChecker.new(bot_files) do
bot_files.each { |file| require_dependency file }
end
ActiveSupport::Reloader.to_prepare do
bot_reloader.execute_if_updated
end
bot_files.each { |file| require_dependency file }
end
# ref: https://github.com/jgorset/facebook-messenger#make-a-configuration-provider
class ChatwootFbProvider < Facebook::Messenger::Configuration::Providers::Base
def valid_verify_token?(_verify_token)
ENV['FB_VERIFY_TOKEN']
end
def app_secret_for(_page_id)
ENV['FB_APP_SECRET']
end
def access_token_for(page_id)
Channel::FacebookPage.where(page_id: page_id).last.page_access_token
end
private
def bot
Chatwoot::Bot
end
end
Facebook::Messenger.configure do |config|
config.provider = ChatwootFbProvider.new
end