code: func (ctx *Context) RefreshAuthrToken(appid, refreshToken string) (*AuthrAccessToken, error) {
  	cat, err := ctx.GetComponentAccessToken()
  	if err != nil {
  		return nil, err
  	}
  
  	req := map[string]string{
  		"component_appid":          ctx.AppID,
  		"authorizer_appid":         appid,
  		"authorizer_refresh_token": refreshToken,
  	}
  	uri := fmt.Sprintf(refreshTokenURL, cat)
  	body, err := util.PostJSON(uri, req)
  	if err != nil {
  		return nil, err
  	}
  
  	ret := &AuthrAccessToken{}
  	if err := json.Unmarshal(body, ret); err != nil {
  		return nil, err
  	}
  
  	authrTokenKey := "authorizer_access_token_" + appid
  	ctx.Cache.Set(authrTokenKey, ret.AccessToken, time.Minute*80)
  
  	return ret, nil
  }
docs: // RefreshAuthrToken 获取（刷新）授权公众号或小程序的接口调用凭据（令牌）