21 lines
630 B
Ruby
21 lines
630 B
Ruby
|
# services from Meta (Prev: Facebook) needs a token verification step for webhook subscriptions,
|
||
|
# This concern handles the token verification step.
|
||
|
|
||
|
module MetaTokenVerifyConcern
|
||
|
def verify
|
||
|
service = is_a?(Webhooks::WhatsappController) ? 'whatsapp' : 'instagram'
|
||
|
if valid_token?(params['hub.verify_token'])
|
||
|
Rails.logger.info("#{service.capitalize} webhook verified")
|
||
|
render json: params['hub.challenge']
|
||
|
else
|
||
|
render status: :unauthorized, json: { error: 'Error; wrong verify token' }
|
||
|
end
|
||
|
end
|
||
|
|
||
|
private
|
||
|
|
||
|
def valid_token?(_token)
|
||
|
raise 'Overwrite this method your controller'
|
||
|
end
|
||
|
end
|