Проблема. Как отправить пользователю электронное письмо после его первой регистрации на Facebook? Я использую устройство и omniauth.
У меня есть электронные письма с подтверждением, работающие для обычной регистрации с devise. Мне нужно отправить электронное письмо, когда пользователь впервые добавляется в мою базу данных после входа в Facebook. Где это происходит в коде?
Я попытался добавить строку кода для отправки электронной почты в свой omniauth_callbacks_controller.
class OmniauthCallbacksController < Devise::OmniauthCallbacksController
# omniauth_callbacks_controller
def facebook
@user = User.from_omniauth(request.env["omniauth.auth"])
facebook = "www.facebook.com"
if @user.persisted?
print "User persisted"
sign_in @user, :event => :authentication
set_flash_message(:notice,:success,:kind => "Facebook") if is_navigational_format?
# I SENT THE EMAIL HERE
else
session["device.facebook_data"] = request.env["omniauth.auth"]
redirect_to root_path
end
end
Однако это просто отправляет пользователю электронное письмо с подтверждением КАЖДЫЙ раз, когда он входит в систему через Facebook, а это не то, чего я хочу. Я хочу просто отправить электронное письмо при первом входе в систему.
Электронное письмо должно быть отправлено в файл Registrations_controller. Однако, когда пользователи регистрируются в Facebook, этот контроллер никогда не используется.
class RegistrationsController < Devise::RegistrationsController
def create
build_resource(sign_up_params)
if resource.save
if resource.active_for_authentication?
set_flash_message :notice, :signed_up if is_navigational_format?
sign_up(resource_name, resource)
# Tell the UserMailer to send a welcome email after save
UserMailer.welcome_email(current_user).deliver_later
return render :json => {:success => true}
else
set_flash_message :notice, :"signed_up_but_#{resource.inactive_message}" if is_navigational_format?
expire_session_data_after_sign_in!
return render :json => {:success => true}
end
else
clean_up_passwords resource
invalid_signin_attempt
end
end
Хотел бы знать, как правильно отправить подтверждение пользователю после регистрации в Facebook.