因为工作的需要,这一两年对微信公众号和小程序,项目制作的比较多。所以我才打算写一篇全面的制作教程,当然了,最好的教程是微信工作平台的文档。我这里只是讲述一下我的工作中的制作流程。所有相关文章的源码,我托管在我自己的github上面,欢迎关注:地址点击打开链接。接下来开始我们的教程。这一节我们讲述素材上传。

1.上传临时素材:

当在对用户进行消息回复或者进行消息的推送时基本上都需要使用到素材。微信将素材进行类型的划分例如、图片、语言、视频、图文。同时也对素材进行了临时跟永久的区分。临时素材只能保持三天。永久素材可以长期保存但是有使用的上限

微信文档如下:


代码如下:

<?php
namespace app\home\controller;
use think\ Controller;
require_once( 'function.php');
class File extends Controller{
public $accessToken = "";
public function __construct()
{
parent :: __construct();
$this ->accessToken = get_access_token();
}
public function lsupload()
{
$url = "https://api.weixin.qq.com/cgi-bin/media/upload?access_token=" . $this ->accessToken . "&type=image";
$file = dirname( THINK_PATH) . '/1.jpg';
$data = array(
"media" =>new \CurlFile($file)
);
$res = http_curl($url,$data, 'post');
dump($res);
}


}

上述并没有继承公共控制器,是为了不走网页授权:

结果如下:


2.上传视频素材:

代码如下:

public function addVideo()
{
    $url = 'https://api.weixin.qq.com/cgi-bin/material/add_material?access_token=' . $this ->accessToken . '&type=video';
    $file = dirname( THINK_PATH) . '/1.mp4';

$data = array(
'media' =>new \CurlFile($file),
'description' => '{"title":"高清大片","introduction":"PHP与Java对比"}'
);
$res = http_curl($url,$data, 'post');
dump($res);
}

结果如下:


3.上传永久素材:

大家可以看看微信开发者文档的


上传的方式都是大同小异的。我们可以把上传的永久素材返回的地址保存在数据库,这样就可以频繁使用了。


4.消息群发:

4.1创建标签:

文档如下:

代码如下:

// 创建标签
public function createTag()
{
    $url = 'https://api.weixin.qq.com/cgi-bin/tags/create?access_token=' . $this ->accessToken;
    $data = '{"tag" : {"name" : "中国好声音"}}';
    $res = http_curl($url,$data, 'post');
     dump($res);
}

结果如下:


4.2查看已有标签

文档如下:


代码如下:

// 查看已有标签
public function getTag()
{
    $url = 'https://api.weixin.qq.com/cgi-bin/tags/get?access_token=' . $this ->accessToken;
    $res = http_curl($url);
     dump($res);
}

结果如下:


4.3批量为用户设置标签:

文档如下:


代码如下:

//设置标签
public function setTag()
{
    $url = 'https://api.weixin.qq.com/cgi-bin/tags/members/batchtagging?access_token=' . $this ->accessToken;
    $data = '{"openid_list" : ["oOnXGwpc7_8My4YLpDkTnbSFdrak","oOnXGwsELMp54MG3Vl0abY4aLluk" ], "tagid" : 100 }';
    $res = http_curl($url,$data, 'post');
     dump($res);
}
使用上述创建的标签id和关注者的openid

结果如下:


4.4按照标签给用户群发消息:

微信模板:


代码如下:

// 按照标签给用户群发消息
public function send()
{
    $url = 'https://api.weixin.qq.com/cgi-bin/message/mass/sendall?access_token=' . $this ->accessToken;
     // 根据要发送的消息的类型判断拼接不同的json格式数据
    $data = '{
         "filter":{
         "is_to_all":false,
         "tag_id":100
         },
         "text":{
         "content":"根据要发送的消息的类型判断拼接不同的json格式数据"
         },
         "msgtype":"text"
        }';
        $res = http_curl($url,$data, 'post');
     dump($res);
}

结果如下:



微信公众号的开发,对微信开发者文档的阅读是最主要的。目前暂时先写到这里,后续慢慢在分享一些不错的制作案例.........

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐