ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

微信公众号菜单php开发及二次获取

2022-06-08 17:04:28  阅读:158  来源: 互联网

标签:ch name url 微信 token 菜单 result curl php


不更新问题:

度娘说的到的没有什么用。

所以我们自己在调用一次生成函数就可以了。

微信菜单不是渲染一个页面重新加载一下,这个菜单式只提交一次的,然后就由微信存储,所以会有项目更新实际公众号没更新的问题,

以下文件你新建一个或者放在别的php里面,在引入的时候调用一次就可以了

function getMenu(){
    $cfg= wechatconfig();
    $rs = getAccessToken($cfg['wx_appid'],$cfg['wx_appsecret']);
    $access_token = $rs['access_token'];
    $jsonmenu = '{ 
      "button":[ 
      { 
       "name":"关于太易", 
       "sub_button":[ 
       { 
        "type":"click", 
        "name":"消息1号", 
        "key":"消息1号" 
       }, 
       { 
        "type":"click", 
        "name":"消息2号", 
        "key":"消息2号" 
       }, 
       { 
        "type":"view", 
        "name":"官网", 
        "url":"http://www.baidu.cn/" 
       }] 
      
     
      }, 
      { 
       "name":"产品中心", 
       "sub_button":[ 
       { 
        "type":"view", 
        "name":"安全", 
        "url":"http://www.baidu.cn/" 
       }, 
       { 
        "type":"view", 
        "name":"公", 
        "url":"https://i.cnblogs.com/"
}, { "type":"click", "name":"消息", "key":"笑话" }] }] }';
$url = "https://api.weixin.qq.com/cgi-bin/menu/create?access_token=".$access_token; $result = https_request($url, $jsonmenu);
var_dump($result);

}

 注意一下,这个的    access_token   和之前获取用户信息的    access_token   不是一个,是通过appid和appsecrect直接获取的。

代码如下:
function getAccessToken($appid, $appsecret)
{
    $url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=' . $appid . '&secret=' . $appsecret;
    $result = myCurlGet($url);
    $arr = json_decode($result, true);
    return $arr;
}

这个函数里面涉及到的    myCurlGet    函数是  curl 方式读取接口数据

/*
 *    curl get方式读取接口数据,数据要求为标准json格式
 * @param $source 外部数据url
 *    update    2015-02-04 08:48:31 
 */
function myCurlGet($source)
{
    $url = $source;
    $ch = curl_init();
    $timeout = 5;
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);//强制协议为1.0
    curl_setopt($ch, CURLOPT_HTTPHEADER, array("Expect: ")); //头部要送出'Expect: 
    curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4 ); //强制使用IPV4协议解析域名
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);

    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); //本地开发 不检查 ssl

    $result = curl_exec($ch);

    if (curl_errno($ch)) {
        return curl_error($ch);
    }
    curl_close($ch);
    return $result;

    //$arr = json_decode($result,true);
}

 



标签:ch,name,url,微信,token,菜单,result,curl,php
来源: https://www.cnblogs.com/shirley-csdn/p/16356296.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有