本人初学php,开始对php的理解是,当客户端向服务端发出请求时候,Php自动开始执行。怪自己笨,看着微信官方给的API纠结了n久也没想出来,怎么php主动发消息给微信服务端(固定思维了,人为php就是服务端,发送请求就应该用浏览器或者c++这种主动执行的代码去发起请求)。在度娘了n个结果后,终于恍然大悟!用自己浏览器去访问本地服务器,这样就可以主动运行php代码了。怪我太年轻,刚刚接触php。
这个明白了以后,后面貌似就变得很简单了。
1.根据APPID和APPSECRET去获取acess_taken
$APPID="wx85f447f9b1d9e3bf";
$APPSECRET="4afb044f70d5e041fa99d40d55dd9e0d";
$TOKEN_URL="https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$APPID."&secret=".$APPSECRET;
$json=file_get_contents($TOKEN_URL);
$result=json_decode($json,true);
$access_token =$result['access_token'];
获得了access_token以后,我们就可以获得到了我们需要的发送地址。
但是在发送给企鹅微信服务器之前,我们先得告诉企鹅我们需要定义怎么样的按钮呗,所以我们需要定义按钮。定义按钮我们需要的是定义一个array();将array作为json传送给企鹅服务器。
下面是定义按钮的array,下面的定义我是网上copy来的。只是作为demo看的。
$jsonmenu = '{
"button":[
{
"name":"天气预报",
"sub_button":[
{
"type":"click",
"name":"北京天气",
"key":"天气北京"
},
{
"type":"click",
"name":"上海天气",
"key":"天气上海"
},
{
"type":"click",
"name":"广州天气",
"key":"天气广州"
},
{
"type":"click",
"name":"深圳天气",
"key":"天气深圳"
},
{
"type":"view",
"name":"本地天气",
"url":"http://m.hao123.com/a/tianqi"
}]
},
{
"name":"方倍工作室",
"sub_button":[
{
"type":"click",
"name":"公司简介",
"key":"company"
},
{
"type":"click",
"name":"趣味游戏",
"key":"游戏"
},
{
"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);
function https_request($url,$data = null){
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
if (!empty($data)){
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
}
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($curl);
curl_close($curl);
return $output;
}
执行代码以后:
这样基本就成功了。
困死我了。原谅我简单的写完了。