微信公眾號開發者模式自定義菜單 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); } });

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM