github.com/chanxuehong/wechat@v0.0.0-20230222024006-36f0325263cd/mp/menu/api.go (about)

     1  package menu
     2  
     3  import (
     4  	"github.com/chanxuehong/wechat/mp/core"
     5  )
     6  
     7  // 创建自定义菜单.
     8  func Create(clt *core.Client, menu *Menu) (err error) {
     9  	const incompleteURL = "https://api.weixin.qq.com/cgi-bin/menu/create?access_token="
    10  
    11  	var result core.Error
    12  	if err = clt.PostJSON(incompleteURL, menu, &result); err != nil {
    13  		return
    14  	}
    15  	if result.ErrCode != core.ErrCodeOK {
    16  		err = &result
    17  		return
    18  	}
    19  	return
    20  }
    21  
    22  // 查询自定义菜单.
    23  func Get(clt *core.Client) (menu *Menu, conditionalMenus []Menu, err error) {
    24  	const incompleteURL = "https://api.weixin.qq.com/cgi-bin/menu/get?access_token="
    25  
    26  	var result struct {
    27  		core.Error
    28  		Menu             Menu   `json:"menu"`
    29  		ConditionalMenus []Menu `json:"conditionalmenu"`
    30  	}
    31  	if err = clt.GetJSON(incompleteURL, &result); err != nil {
    32  		return
    33  	}
    34  	if result.ErrCode != core.ErrCodeOK {
    35  		err = &result.Error
    36  		return
    37  	}
    38  	menu = &result.Menu
    39  	conditionalMenus = result.ConditionalMenus
    40  	return
    41  }
    42  
    43  // 删除自定义菜单.
    44  func Delete(clt *core.Client) (err error) {
    45  	const incompleteURL = "https://api.weixin.qq.com/cgi-bin/menu/delete?access_token="
    46  
    47  	var result core.Error
    48  	if err = clt.GetJSON(incompleteURL, &result); err != nil {
    49  		return
    50  	}
    51  	if result.ErrCode != core.ErrCodeOK {
    52  		err = &result
    53  		return
    54  	}
    55  	return
    56  }