code: func NewBot(pref Settings) (*Bot, error) {
  	if pref.Updates == 0 {
  		pref.Updates = 100
  	}
  
  	client := pref.Client
  	if client == nil {
  		client = http.DefaultClient
  	}
  
  	if pref.URL == "" {
  		pref.URL = DefaultApiURL
  	}
  
  	bot := &Bot{
  		Token:   pref.Token,
  		URL:     pref.URL,
  		Updates: make(chan Update, pref.Updates),
  		Poller:  pref.Poller,
  
  		handlers: make(map[string]interface{}),
  		stop:     make(chan struct{}),
  		reporter: pref.Reporter,
  		client:   client,
  	}
  
  	user, err := bot.getMe()
  	if err != nil {
  		return nil, err
  	}
  
  	bot.Me = user
  	return bot, nil
  }
docs: // NewBot does try to build a Bot with token `token`, which
  // is a secret API key assigned to particular bot.