":MEDIA_ID } 返回的即为新增的图文消息素材的media_id。 ":MEDIA_ID } 返回参数说明 参数描述 media_id 新增的永久素材的media_id 错误情况下的返回JSON数据包示例如下(示例为无效媒体类型错误): {"errcode ":40007,"errmsg":"invalid media_id"} 获取永久素材 在新增了永久素材后,开发者可以根据media_id来获取永久素材,需要时也可保存到本地。 access_token=ACCESS_TOKEN 调用示例 { "media_id":MEDIA_ID } 参数说明 参数是否必须说明 access_token 是 调用接口凭证 media_id access_token=ACCESS_TOKEN 调用示例 { "media_id":MEDIA_ID } 参数说明 参数是否必须说明 access_token 是 调用接口凭证 media_id
f.write(r.content) 图片处理及上传 图片处理:这里自己想怎么处理就怎么处理吧,用Python给头像加上圣诞帽或圣诞老人小图标 图片上传: 上传临时素材接口,获取临时图片的media_id '] 返回图片 reply = ImageReply(media_id=media_id, message=message) return reply 这样一个完整的图片获取,下载、处理、上传、返回就完成了 request_download(img_url, img_path) # 图片处理 add_hat(img_path, img_outPath) # 上传至服务器 media_id = img_upload("image", img_outPath) # message.MediaId = media_id # 返回信息 reply = ImageReply (media_id=media_id, message=message) return reply ?
领8888元新春采购礼包,抢爆款2核2G云服务器95元/年起,个人开发者加享折上折
',msgid="media_id") elif msgtype=="voice": media_id=self.get_media_ID(msg,upload_token,msgtype="voice ") data=self.msg_messages(media_id,agid,msgtype='voice',msgid="media_id") elif msgtype=="video": media_id ',msgid="media_id") elif msgtype=="file": media_id=self.get_media_ID(msg,upload_token,msgtype="file ") data=self.msg_messages(media_id,agid,msgtype='file',msgid="media_id") else: raise Exception("msgtype msg为消息的实际内容,如果是文本消息,则为字符串,如果是其他类型,则传递media_id的值。
一、本节要点 1.临时素材有效期 media_id是可复用的,同一个media_id可用于消息的多次发送(3天内有效) 2.上传文件时的http请求里都有啥 ? 、created_at) (4)上传完素材就要使用素材了:这时,我们拿着上一步的media_id,去做发送图片消息的测试。 = null) { if (resultJSON.get("media_id") ! @Test public void testSendImgMessage(){ //0.设置消息内容 //String media_id="MEDIA_ID @Test public void testSendVoiceMessage(){ //0.设置消息内容 String media_id="MEDIA_ID
[CDATA[{$media_id}]]></MediaId> </Voice> </xml> XML; return $xml; } /** * 回复视频消息 [CDATA[{$media_id}]]></MediaId> <Title><! [CDATA[{$media_id}]]></ThumbMediaId> </Music> </xml> XML; return $xml; * @return string */ public function send_voice($toUser,$fromUser,$time,$media_id){ $xml=<< [CDATA[{$media_id}]]></MediaId> </Voice> </xml> XML; return $xml; } } ?>
arg_url data = { "media": file_obj} r = requests.post(url=url, files=data) js = r.json() try: return js['media_id '] except KeyError: # 成功返回后就会获得'media_id'字段,否则报错KeyError raise KeyError("Get media_id failed.") def %s': '%s'}, "safe": 0}''' if msg_type == 'text': values = base_string % ('content', contents) else: media_id _get_media_id(msg_type, file_obj) values = base_string % ('media_id', media_id) data = eval(values) js
的方法 // 因为方法是一个promise,所以调用的时候需要加上 await 前缀 let media_id = await uploadTempImg(url, access_token) if (media_id){ // 发送消息 const res2 = await uniCloud.httpclient.request("https://api.weixin.qq.com/cgi-bin : media_id } } }); } } 自动回复的小机器人就出现了 完整代码 'use strict'; // 需要先执行初始化 npm init 的方法 // 因为方法是一个promise,所以调用的时候需要加上 await 前缀 let media_id = await uploadTempImg(url, access_token) : media_id } } }); } } //返回数据给客户端 return; };
":"MEDIA_ID" } } 发送视频消息 { "touser":"OPENID", "msgtype":"video", "video": { "media_id":"MEDIA_ID", "thumb_media_id":"MEDIA_ID", "title":"TITLE", "description { "touser":"OPENID", "msgtype":"mpnews", "mpnews": { "media_id":"MEDIA_ID media_id,上传方式可以从公众平台页面上传或使用curl命令进行上传 (PS:这里我curl用的很少,大多数资源都是通过公众平台进行上传,而且上传的都是永久素材) 新增永久视频素材的调用示例(慎用 ":MEDIA_ID, "url":URL } 返回参数说明 参数 描述 media_id 新增的永久素材的media_id url 新增的图片素材的图片URL(仅新增图片素材时会返回该字段
[CDATA[media_id]]></MediaId> <ThumbMediaId><! [CDATA[media_id]]></MediaId> <Title><![CDATA[title]]></Title> <Description><! [CDATA[media_id]]></MediaId> <ThumbMediaId><! [CDATA[media_id]]></ThumbMediaId> </Music> </xml> 图文消息 回复样例 <xml> <ToUserName><!
": 123} media_id: 必填,通过素材管理中的接口上传多媒体文件,得到的id。 =body["media_id"]) def voiceXML(body, event): ''' :param body: {"media_id": 123} media_id =body["media_id"]) def videoXML(body, event): ''' :param body: {"media_id": 123, "title": " [CDATA[{media_id}]]></MediaId> <Title><! if media_id else None 最后在 main_handler 中,增加使用逻辑: ?
进入这里 //服务端回复 图片,也可以回复别的类型,根据需要 $data['msgtype'] = "image"; $data['image'] = ['media_id ' => 'media_id值']; // 执行 $xcxmsg->upload($accessToken)返回的 media_id $json = json_encode($data, "title" => "title", "pagepath" => "pages/index/index", "thumb_media_id" => "media_id 值"];// 执行 $xcxmsg->upload($accessToken)返回的 media_id $json = json_encode($data, JSON_UNESCAPED_UNICODE
picurl":"" }] } }'; } } api.php【用于响应用户发送的关键字】核心代码如下 //接收文本消息 private function receiveText($object) { $media_id =$object->ToUserName;//公众号原始id $re=$this->getghname($media_id); $ghname=$re['name']; //公众号的名称 switch transmitText($object, $content); } return $result; } 微校获取公众号信息,签名算法等函数 function getghname($media_id '=>$media_id, 'api_key'=>$apikey, 'timestamp'=>$time, 'nonce_str'=>$noncestr, ); $sign=$this media_id=$media_id&api_key=$apikey×tamp=$time&nonce_str=$noncestr&sign=$sign")); $re = json_decode
webhook, content='# 一级标题 \n 微信搜索HsuHeinrich,发现更多精彩') 结果如下: 发送文件 企业微信是支持推送文件的,首先将文件上传至企业微信指定的地址,然后返回给你media_id 文件应小于20M,且media_id有效时间为三天。 type=file' files = {'file': open(file, 'rb')} res = requests.post(url=id_url, files=files) media_id Charset": "UTF-8" } data ={ "msgtype": "file", "file": { "media_id ": media_id } } data = json.dumps(data) info = requests.post(url=webhook, data=data
发送文件 def send_file_to_users(access_token, users, file_name): media_id = upload_file(access_token, file_name) if media_id == '': return msg_type, msg = _gen_file_msg(media_id) return response_str = response.read() response_dict = json.loads(response_str) media_id_key = 'media_id response_dict.has_key(media_id_key): return response_dict[media_id_key] else: return '' 需要先上传文件获得media_id ,然后使用media_id将文件发送给用户。
伪代码: function set($business_id , $media_id , $switch_status=1){ $switch_status = $switch_status ? 1 : 0; $key = $this->_getKey($business_id, $media_id); $offset = $this->_getOffset($media_id) ; return $this->redis->setBit($key, $offse, $switch_status); } function get($business_id , $media_id ){ $key = $this->_getKey($business_id,$media_id); $offset = $this->_getOffset($media_id); $business_id.':'.intval($media_id/10000); } function _getOffset($media_id){ return $media_id % 10000
image": //如用户发送图片消息,进入这里 //服务端回复 图片,也可以回复别的类型,根据需要 $data['msgtype'] = "image"; $data['image'] = ['media_id ' = 'media_id值']; // 执行 $xcxmsg- upload($accessToken)返回的 media_id $json = json_encode($data, JSON_UNESCAPED_UNICODE miniprogrampage'] = [ "title" = "title", "pagepath" = "pages/index/index", "thumb_media_id" = "media_id 值"];// 执行 $xcxmsg- upload($accessToken)返回的 media_id $json = json_encode($data, JSON_UNESCAPED_UNICODE
"ImgPop\",\"slotType\":\"default\",\"widgetObj\":{\"type\":\"ImgPop\",\"options\":{\"singleImg\":{\"media_id black-resource-1257307183.cos.ap-beijing.myqcloud.com/227559f691288c7149a0f5e42568bc9c.png\"},\"baseImg\":{\"media_id "ImgPop\",\"slotType\":\"default\",\"widgetObj\":{\"type\":\"ImgPop\",\"options\":{\"singleImg\":{\"media_id "ImgPop\",\"slotType\":\"default\",\"widgetObj\":{\"type\":\"ImgPop\",\"options\":{\"singleImg\":{\"media_id "ImgPop\",\"slotType\":\"default\",\"widgetObj\":{\"type\":\"ImgPop\",\"options\":{\"singleImg\":{\"media_id
$app->material_temporary->uploadImage($image);// 上传临时素材 $message = new \EasyWeChat\Message\Image(['media_id ' => $result['media_id']]); $token = ''; checkSignature($token); $message = json_decode(file_get_contents $result = $app->material_temporary->uploadImage($image); $content = new Image(['media_id ' => $result['media_id']]); } else { $content = new Text(['content' => '未设置客服二维码'
扫码关注腾讯云开发者
领取腾讯云代金券