纯属分享

  1. var config = require('./admin/wx/config/config');
  2. var API = require('wechat-api');
  3.  
  4. var api = new API(config.appid, config.appsecret);
  5. api.getAccessToken(function (err, token) {
  6. console.log(err);
  7. console.log(token); //accessToken
  8. });
  9.  
  10. var menu = JSON.stringify(require('./admin/wx/config/wx_menu.json'));
  11. api.createMenu(menu, function (err, result) {
  12. console.log(result); // { errcode: 0, errmsg: 'ok' }
  13. });

config.js

  1. module.exports = {
  2. appid : "wx6238bb5b691334fc",
  3. appsecret : "da41b732f36f9d390eb9835605a38423"
  4. }

wx_menu.json

  1. {
  2. "button":[
  3. {
  4. "type":"click",
  5. "name":"今日歌曲",
  6. "key":"V1001_TODAY_MUSIC"
  7. },
  8. {
  9. "type":"click",
  10. "name":"歌手简介",
  11. "key":"V1001_TODAY_SINGER"
  12. },
  13. {
  14. "name":"菜单",
  15. "sub_button":[
  16. {
  17. "type":"view",
  18. "name":"搜索",
  19. "url":"http://www.soso.com/"
  20. },
  21. {
  22. "type":"view",
  23. "name":"视频",
  24. "url":"http://v.qq.com/"
  25. },
  26. {
  27. "type":"click",
  28. "name":"赞一下我们",
  29. "key":"V1001_GOOD"
  30. }
  31. ]
  32. }
  33. ]
  34. }
  1. result 返回结果为:
  1. { errcode: 0, errmsg: 'ok' } 者表示成功!
    为下面这个就是表示没有权限使用自定义菜单:
    { errcode: 48001,errmsg: 'api unauthorized hint: [iHQZfa0607vr46!]' }
  1. http://mp.weixin.qq.com/debug 这个地址可以测试

  1. 还有一种方法:
  1. var u = 'https://api.weixin.qq.com/cgi-bin/menu/create?access_token=m9UgecuDsgZurHHk17MBYPJEtCtZ-2-whaYodfDkXhvRpyy-NL06nJz5IA9EYplajmz8DNYad8yxP2NC1T5jHZw6k25eNVjYQwohX7PSO6xMaNo6z6wTOHceuF6KCz0qBSLhAFAOFY';
  2. var content = JSON.stringify(require('./config/wx_menu.json'));//这是需要提交的数据
  3. var options = {
  4. url: u,
  5. form: content,
  6. headers: {
  7. 'Content-Type': 'application/x-www-form-urlencoded'
  8. }
  9. };
  10.  
  11. request.post(options, function (err, res, body) {
  12. if (err) {
  13. console.log(err)
  14. }else {
  15. console.log(body);
  16. }
  17. })

这种方式得先拿到 access_token 值,这个值是2个小时更新一次

代码:

  1. var qs = require('querystring'); 
    var queryParams = {
  2. 'grant_type': 'client_credential',
  3. 'appid': config.appId,
  4. 'secret': config.appSecret
  5. };
  6.  
  7. var wxGetAccessTokenBaseUrl = 'https://api.weixin.qq.com/cgi-bin/token?'+qs.stringify(queryParams);
  8. var options = {
  9. method: 'GET',
  10. url: wxGetAccessTokenBaseUrl
  11. };
  12. request(options, function (err, res, body) {
  13. if (err) {
  14. console.log(err);
  15. } else {
  16. console.log(body);
  17. }
  18. });

微信公众号开发者模式自定义菜单 node的更多相关文章

  1. tp6微信公众号开发者模式自定义菜单

    1,参考上篇博客,获取access_token https://www.cnblogs.com/xiaoyantongxue/p/15803334.html 2:控制器写以下代码 /* * 获取普通a ...

  2. php 开启微信公众号开发者模式

    php 开启微信公众号开发者模式<pre><?php/** * wechat php test */header('Content-type:text');//define your ...

  3. .NET开发微信公众号之创建自定义菜单

    一.简介 微信公众平台服务号以及之前成功申请内测资格的订阅号都具有自定义菜单的功能.开发者可利用该功能为公众账号的会话界面底部增加自定义菜单,用户点击菜单中的选项,可以调出相应的回复信息或网页链接.自 ...

  4. tp6微信公众号开发者模式token认证

      微信公众号开发完整教程(一) PHP7.0版本,TP5.0框架 技术标签: 微信公众号开发         因为工作的需要,这一两年对微信公众号和小程序,项目制作的比较多.所以我才打算写一篇全面的 ...

  5. tp6微信公众号开发者模式基础消息

    官方文档 https://developers.weixin.qq.com/doc/offiaccount/Message_Management/Receiving_standard_messages ...

  6. tp6微信公众号开发者模式获取access_token

    1:config 文件下新建一个文件wechat.php,将个人id和秘钥写入配置文件 网址: https://developers.weixin.qq.com/doc/offiaccount/Bas ...

  7. node微信公众号开发--设置自定义菜单

    var request = require("request"); const querystring = require("querystring"); re ...

  8. 微信公众号开发——创建自定义菜单(PHP版)

    <?php include "TokenUtil.php"; //TokenUtil::build_access_token(); $access_token = Token ...

  9. Java微信公众平台开发_04_自定义菜单

    一.本节要点 1.菜单相关实体类的封装 参考官方文档中的请求包的内容,对菜单相关实体类进行封装. 2.数据传输格式—JSON 自定义菜单中请求包的数据是Json字符串格式的,请参见:  Java_数据 ...

随机推荐

  1. hello1与hello2的代码分析

    1.hello1代码分析 hello.java package javaeetutorial.hello1; import javax.enterprise.context.RequestScoped ...

  2. Unity3D 4.x怎样实现动画的Ping Pong效果

    近期在看Unity官方的Stealth项目教学视频,视频使用的是Unity旧的版本号,而我如今正在使用的是Unity 4.5,动画系统的操作全然不同了. 依照视频的方式根本无法设置动画的Ping Pi ...

  3. cc2530 AES加密

    快速配置 Z-stack对Zigbee2006提供了全面的支持,功能之强大,性能稳定.安全性高,说到安全性是我们今天的主题.CC2430硬件支持128bit的AES加密算法,在协议栈中为了避开相同设备 ...

  4. windows环境下把Python代码打包成独立执行的exe可执行文件

    有时候因为出差,突然急需处理一批数据.虽然写好的脚本存储在云端随用随取,然而编译的环境还需要重新搭建,模块也需要重新装载,从头到尾这么一遍下来,也是要花费可观的时间成本的. 有没有什么办法,可以让.p ...

  5. 安装VS2012出问题后,反复重启电脑。

    安装VS2012在装 VC++相关部分时出了问题,自动重启了. 重启后安装仍重启. 系统设置里取消了“自动重启”, 出现0x000000F4,网上搜索下,说是和硬盘有关,电源线.数据线.或电源不稳. ...

  6. 动态修改css 规则

    页面引用了两个样式表: <link href="css/mui.min.css" rel="stylesheet" /> <link href ...

  7. ubuntu修改Bash命令行提示符

    用户通过远程登陆,初始的PS1为\s-\v\$, bash为/bin/bash,然后先后执行/etc/profile和~/.bash_profile中的命令. /etc/profile文件中调用执行/ ...

  8. 学习笔记之Elasticsearch

    Elasticsearch: RESTful, Distributed Search & Analytics | Elastic https://www.elastic.co/products ...

  9. [转][Chrome]浏览器粘贴行为

    <html> <head> <meta charset="UTF-8"> <title>test chrome paste imag ...

  10. python selenium-8 Page Object模式

    封装空间操作为一个接口使用,而不是直接在页面中查找 from selenium import webdriver from selenium.webdriver.common.by import By ...