code: func (bot *BotAPI) GetUpdatesChan(config UpdateConfig) (UpdatesChannel, error) {
  	ch := make(chan Update, bot.Buffer)
  
  	go func() {
  		for {
  			select {
  			case <-bot.shutdownChannel:
  				return
  			default:
  			}
  			
  			updates, err := bot.GetUpdates(config)
  			if err != nil {
  				log.Println(err)
  				log.Println("Failed to get updates, retrying in 3 seconds...")
  				time.Sleep(time.Second * 3)
  
  				continue
  			}
  
  			for _, update := range updates {
  				if update.UpdateID >= config.Offset {
  					config.Offset = update.UpdateID + 1
  					ch <- update
  				}
  			}
  		}
  	}()
  
  	return ch, nil
  }
docs: // GetUpdatesChan starts and returns a channel for getting updates.