zoukankan      html  css  js  c++  java
  • 微信公众号开发者模式自定义菜单 node

    纯属分享

    var config = require('./admin/wx/config/config');  
    var API = require('wechat-api'); 
    
    var api = new API(config.appid, config.appsecret); 
    api.getAccessToken(function (err, token) {  
        console.log(err);  
        console.log(token);  //accessToken
    });  
    
    var menu = JSON.stringify(require('./admin/wx/config/wx_menu.json'));  
    api.createMenu(menu, function (err, result) {  
        console.log(result); // { errcode: 0, errmsg: 'ok' }
    }); 

    config.js

    module.exports = {  
        appid : "wx6238bb5b691334fc",  
        appsecret : "da41b732f36f9d390eb9835605a38423"  
    }

    wx_menu.json

    {  
      "button":[  
        {  
          "type":"click",  
          "name":"今日歌曲",  
          "key":"V1001_TODAY_MUSIC"  
        },  
        {  
          "type":"click",  
          "name":"歌手简介",  
          "key":"V1001_TODAY_SINGER"  
        },  
        {  
          "name":"菜单",  
          "sub_button":[  
            {  
              "type":"view",  
              "name":"搜索",  
              "url":"http://www.soso.com/"  
            },  
            {  
              "type":"view",  
              "name":"视频",  
              "url":"http://v.qq.com/"  
            },  
            {  
              "type":"click",  
              "name":"赞一下我们",  
              "key":"V1001_GOOD"  
            }  
          ]  
        }  
      ]  
    }  
    result 返回结果为:
    { errcode: 0, errmsg: 'ok' } 者表示成功!
    为下面这个就是表示没有权限使用自定义菜单:
    { errcode: 48001,errmsg: 'api unauthorized hint: [iHQZfa0607vr46!]' }
    http://mp.weixin.qq.com/debug  这个地址可以测试


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

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

    代码:

    var qs = require('querystring'); 
    var
    queryParams = { 'grant_type': 'client_credential', 'appid': config.appId, 'secret': config.appSecret }; var wxGetAccessTokenBaseUrl = 'https://api.weixin.qq.com/cgi-bin/token?'+qs.stringify(queryParams); var options = { method: 'GET', url: wxGetAccessTokenBaseUrl }; request(options, function (err, res, body) { if (err) { console.log(err); } else { console.log(body); } });
  • 相关阅读:
    json参数http post请求
    获取文本的节点数据
    mongodb robo3t 查询所有 更改固定的50一页
    mongdb 更新字段类型
    数据库表的统计表更新 解决Sql Timeout 时间已到的问题
    html背景图圆角图片设置方法
    abp.vnext vue 跨域设置
    Springboot结合ESAPI——配置XSS过滤
    centos docker安装rabbitmq
    JAVA byte[]转String 中文问题
  • 原文地址:https://www.cnblogs.com/bruce-gou/p/6368881.html
Copyright © 2011-2022 走看看