class_docstr: Facebook input channel implementation. Based on the HTTPInputChannel.
docstr: Create a facebook input channel.
  
  Needs a couple of settings to properly authenticate and validate
  messages. Details to setup:
  
  https://github.com/rehabstudio/fbmessenger#facebook-app-setup
  
  Args:
      fb_verify: FB Verification string
          (can be chosen by yourself on webhook creation)
      fb_secret: facebook application secret
      fb_access_token: access token to post in the name of the FB page
docstr_tok: ["Create","a","facebook","input","channel",".","Needs","a","couple","of","settings","to","properly","authenticate","and","validate","messages",".","Details","to","setup",":","https",":","\/\/github.com\/rehabstudio\/fbmessenger","#","facebook-app-setup","Args",":","fb_verify",":","FB","Verification","string","(","can","be","chosen","by","yourself","on","webhook","creation",")","fb_secret",":","facebook","application","secret","fb_access_token",":","access","token","to","post","in","the","name","of","the","FB","page"]
code: def __init__(
      self, fb_verify: Text, fb_secret: Text, fb_access_token: Text
  ) -> None:
      """Create a facebook input channel.
  
      Needs a couple of settings to properly authenticate and validate
      messages. Details to setup:
  
      https://github.com/rehabstudio/fbmessenger#facebook-app-setup
  
      Args:
          fb_verify: FB Verification string
              (can be chosen by yourself on webhook creation)
          fb_secret: facebook application secret
          fb_access_token: access token to post in the name of the FB page
      """
      self.fb_verify = fb_verify
      self.fb_secret = fb_secret
      self.fb_access_token = fb_access_token
  
imports: import copy
  import hashlib
  import hmac
  import logging
  import structlog
  from fbmessenger import MessengerClient
  from fbmessenger.attachments import Image
  from fbmessenger.elements import Text
  from fbmessenger.quick_replies import QuickReplies, QuickReply
  from fbmessenger.sender_actions import SenderAction
  import rasa.shared.utils.io
  from sanic import Blueprint, response
  from sanic.request import Request
  from typing import Text, List, Dict, Any, Callable, Awaitable, Iterable, Optional, Union
  from rasa.core.channels.channel import UserMessage, OutputChannel, InputChannel
  from sanic.response import HTTPResponse
label_desc: Use image node_id 3 to create a new FacebookInput object from inherited base classes: InputChannel with example: obj = FacebookInput(fb_verify, fb_secret, fb_access_token)