准备工作:
由于调用微信接口采用的是https协议,所以我们需要用cURL来模拟https请求。那么我们就要了解用php建立cURL请求的基本步骤,举个例子说明一下。
例子:
public function cUrl_request($url,$data=null){
//初始化
$ch = curl_init();
//设置option
curl_setopt($ch,CURLOPT_URL,$url);
//跳过SSL证书检查
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,false);
//控制是否输出结果
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
if(!empty($data)){
curl_setopt($ch,CURLOPT_POST,1);
curl_setopt($ch,CURLOPT_POSTFIELDS,$data);
}
$output=curl_exec($ch);
//请求失败,打印失败原因
if(!$output){
echo "发生错误!\n";
var_dump(curl_error($ch));
}
//释放cURL句柄
curl_close($ch);
return $output;
}
开始工作:
准备工作做完之后后面的就简单了,首先是获取access_token,这里通过腾讯给的接口获得,这里就需要用到上面的cURL_request函数了。 再通过创建菜单的接口,加上获取的access_token和需要创建菜单的json格式的字符串数据。然后发送请求便能创建自定义菜单。
出错、查错、解决错误:
在这个过程中出现了很多低级错误,比如出现'errcode':'-1','errmsg':system error hint:[]错误和curl Unsupported protocol:https错误。
第一个主要是因为代码的编码格式没有设置成UTF-8无BOM格式。第二个是因为在https前多了空格。
总得来说还是实践太少,导致这些错误的产生和没这种意识。