code: function send(payload, options, callback)
  {
    var body, reqOptions = {};
  
    if (typeof options == 'function')
    {
      callback = options;
      options  = {};
    }
  
    body = JSON.stringify(payload);
  
    reqOptions['headers'] = {'content-length': Buffer.byteLength(body, 'utf8')};
    reqOptions['timeout'] = this.options.timeout;
  
    options = merge(defaults, reqOptions, options);
  
    request(this.options.apiUrl, options, function(error, response)
    {
      if (error)
      {
        this.logger.error({message: 'Unable to send request to FB API', error: error, response: response, url: this.options.apiUrl.replace(this.credentials.token, '[hidden token]'), body: body, options: options});
        callback(error, response);
        return;
      }
  
      callback(null, parseJson.call(this, response.body));
    }.bind(this)).write(body);
  }
docs: curl -X POST -H "Content-Type: application/json" -d '{ "recipient":{ "id":"USER_ID" }, "message":{ "attachment":{ "type":"image", "payload":{ "url":"https://petersapparel.com/img/shirt.png" } } } }' "https://graph.facebook.com/v2.6/me/messages?access_token=PAGE_ACCESS_TOKEN" 
  Sends provided payload to the FB Graph API
  and passes parsed result to the provided callback
  
  @this  Fbbot#
  @param {object} payload - payload to send
  @param {object} [options] - custom transport options
  @param {function} callback - invoked with the response