code: func (m *Messenger) handle(w http.ResponseWriter, r *http.Request) {
  	if r.Method == "GET" {
  		m.verifyHandler(w, r)
  		return
  	}
  
  	var rec Receive
  
  	// consume a *copy* of the request body
  	body, _ := ioutil.ReadAll(r.Body)
  	r.Body = ioutil.NopCloser(bytes.NewBuffer(body))
  
  	err := json.Unmarshal(body, &rec)
  	if err != nil {
  		fmt.Println("could not decode response:", err)
  		fmt.Fprintln(w, `{status: 'not ok'}`)
  		return
  	}
  
  	if rec.Object != "page" {
  		fmt.Println("Object is not page, undefined behaviour. Got", rec.Object)
  	}
  
  	if m.verify {
  		if err := m.checkIntegrity(r); err != nil {
  			fmt.Println("could not verify request:", err)
  			fmt.Fprintln(w, `{status: 'not ok'}`)
  			return
  		}
  	}
  
  	m.dispatch(rec)
  
  	fmt.Fprintln(w, `{status: 'ok'}`)
  }
docs: // handle is the internal HTTP handler for the webhooks.