在项目中,可能会遇到需要引入微信公众号图文或消息的地方,这是需要用到微信接口。
目前来说,微信的官方接口已经比较全面,涉及到图文素材,消息等常用接口。
微信官方文档地址
调用自己有权限的公众号可以使用如下方式:
* 获取微信账号 AppId
* 生成秘钥 AppSecret
使用官方接口生成 access_token 作为其他接口使用的参数
access_token 有效生命为7200秒,过期后可再次调用接口重新获取。
在做微信公众号接口中,发送的图文消息都属于永久素材,可以直接调用官方接口进行操作。包括:添加、编辑、删除、修改、查询等基本操作。需要使用如下参数:
* access_token
* 其他参数
注意:其他参数如果为多个参数,参数格式为 json 字符串,使用 postman 测试可能会遇到问题,需要在代码中使用 cURL 进行测试。
代码示例
获取 access_token
static public function getAccessToken(){
$AppId = 'AppId';
$AppSecret = 'AppSecret';
$getUrl = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid='.$AppId.'&secret='.$AppSecret;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $getUrl);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// curl_setopt($ch, CURL_SSLVERSION_SSL, 2);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
$data = curl_exec($ch);
$response = json_decode($data);
return $response->access_token;
}
获取永久图文素材
static public function getWeChatNews($length=3)
{
$access_token = self::getAccessToken(); // 获取 access_token
$customMessageSendUrl = 'https://api.weixin.qq.com/cgi-bin/material/batchget_material?access_token='.$access_token;
$postJosnData = '{"type":"news","offset":0,"count":3}'; // 组合个性参数
$ch = curl_init($customMessageSendUrl);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postJosnData);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
$data = curl_exec($ch);
}