求一段微信开发新增永久图片素材的接口代码

求一段微信开发新增永久图片素材的接口代码,第1张

//素材

const MEDIA_FOREVER_UPLOAD_URL = '/material/add_material?'

const MEDIA_FOREVER_NEWS_UPLOAD_URL = '/material/add_news?'

const MEDIA_FOREVER_NEWS_UPDATE_URL = '/material/update_news?'

const MEDIA_FOREVER_GET_URL = '/material/get_material?'

const MEDIA_FOREVER_DEL_URL = '/material/del_material?'

const MEDIA_FOREVER_COUNT_URL = '/material/get_materialcount?'

const MEDIA_FOREVER_BATCHGET_URL = '/material/batchget_material?'

/**

* 上传临时素材,有效期为3天(认证后的订阅可用)

* 注意:上传大文件时可能需要先调用 set_time_limit(0) 避免超时

* 注意:数组的键值任意,但文件名前必须加@,使用单引号以避免本地路径斜杠被转义

* 注意:临时素材的media_id是可复用的!

* @param array $data {"media":'@Path\filename.jpg'}

* @param type 类型:图片:image 语音:voice 视频:video 缩略图:thumb

* @return boolean|array

*/

public function uploadMedia($data, $type){

   if (!$this->access_token &&!$this->checkAuth()) return false

   //原先的上传多媒体文件接口使用 self::UPLOAD_MEDIA_URL 前缀

   $result = $this->http_post(self::API_URL_PREFIX.self::MEDIA_UPLOAD_URL.'access_token='.$this->access_token.'&type='.$type,$data,true)

   if ($result)

   {

       $json = json_decode($result,true)

       if (!$json || !empty($json['errcode'])) {

           $this->errCode = $json['errcode']

           $this->errMsg = $json['errmsg']

           return false

       }

       return $json

   }

   return false

}

/**

* 获取临时素材(认证后的订阅号可用)

* @param string $media_id 媒体文件id

* @param boolean $is_video 是否为视频文件,默认为否

* @return raw data

*/

public function getMedia($media_id,$is_video=false){

   if (!$this->access_token &&!$this->checkAuth()) return false

   //原先的上传多媒体文件接口使用 self::UPLOAD_MEDIA_URL 前缀

   //如果要获取的素材是视频文件时,不能使用https协议,必须更换成http协议

   $url_prefix = $is_video?str_replace('https','http',self::API_URL_PREFIX):self::API_URL_PREFIX

   $result = $this->http_get($url_prefix.self::MEDIA_GET_URL.'access_token='.$this->access_token.'&media_id='.$media_id)

   if ($result)

   {

       if (is_string($result)) {

           $json = json_decode($result,true)

           if (isset($json['errcode'])) {

               $this->errCode = $json['errcode']

               $this->errMsg = $json['errmsg']

               return false

           }

       }

       return $result

   }

   return false

}

/**

* 上传永久素材(认证后的订阅号可用)

* 新增的永久素材也可以在公众平台官网素材管理模块中看到

* 注意:上传大文件时可能需要先调用 set_time_limit(0) 避免超时

* 注意:数组的键值任意,但文件名前必须加@,使用单引号以避免本地路径斜杠被转义

* @param array $data {"media":'@Path\filename.jpg'}

* @param type 类型:图片:image 语音:voice 视频:video 缩略图:thumb

* @param boolean $is_video 是否为视频文件,默认为否

* @param array $video_info 视频信息数组,非视频素材不需要提供 array('title'=>'视频标题','introduction'=>'描述')

* @return boolean|array

*/

public function uploadForeverMedia($data, $type,$is_video=false,$video_info=array()){

   if (!$this->access_token &&!$this->checkAuth()) return false

   //#TODO 暂不确定此接口是否需要让视频文件走http协议

   //如果要获取的素材是视频文件时,不能使用https协议,必须更换成http协议

   //$url_prefix = $is_video?str_replace('https','http',self::API_URL_PREFIX):self::API_URL_PREFIX

   //当上传视频文件时,附加视频文件信息

   if ($is_video) $data['description'] = self::json_encode($video_info)

   $result = $this->http_post(self::API_URL_PREFIX.self::MEDIA_FOREVER_UPLOAD_URL.'access_token='.$this->access_token.'&type='.$type,$data,true)

   if ($result)

   {

       $json = json_decode($result,true)

       if (!$json || !empty($json['errcode'])) {

           $this->errCode = $json['errcode']

           $this->errMsg = $json['errmsg']

           return false

       }

       return $json

   }

   return false

}

/**

* 上传永久图文素材(认证后的订阅号可用)

* 新增的永久素材也可以在公众平台官网素材管理模块中看到

* @param array $data 消息结构{"articles":[{...}]}

* @return boolean|array

*/

public function uploadForeverArticles($data){

   if (!$this->access_token &&!$this->checkAuth()) return false

   $result = $this->http_post(self::API_URL_PREFIX.self::MEDIA_FOREVER_NEWS_UPLOAD_URL.'access_token='.$this->access_token,self::json_encode($data))

   if ($result)

   {

       $json = json_decode($result,true)

       if (!$json || !empty($json['errcode'])) {

           $this->errCode = $json['errcode']

           $this->errMsg = $json['errmsg']

           return false

       }

       return $json

   }

   return false

}

/**

* 修改永久图文素材(认证后的订阅号可用)

* 永久素材也可以在公众平台官网素材管理模块中看到

* @param string $media_id 图文素材id

* @param array $data 消息结构{"articles":[{...}]}

* @param int $index 更新的文章在图文素材的位置,第一篇为0,仅多图文使用

* @return boolean|array

*/

public function updateForeverArticles($media_id,$data,$index=0){

   if (!$this->access_token &&!$this->checkAuth()) return false

   if (!isset($data['media_id'])) $data['media_id'] = $media_id

   if (!isset($data['index'])) $data['index'] = $index

   $result = $this->http_post(self::API_URL_PREFIX.self::MEDIA_FOREVER_NEWS_UPDATE_URL.'access_token='.$this->access_token,self::json_encode($data))

   if ($result)

   {

       $json = json_decode($result,true)

       if (!$json || !empty($json['errcode'])) {

           $this->errCode = $json['errcode']

           $this->errMsg = $json['errmsg']

           return false

       }

       return $json

   }

   return false

}

/**

* 获取永久素材(认证后的订阅号可用)

* 返回图文消息数组或二进制数据,失败返回false

* @param string $media_id 媒体文件id

* @param boolean $is_video 是否为视频文件,默认为否

* @return boolean|array|raw data

*/

public function getForeverMedia($media_id,$is_video=false){

   if (!$this->access_token &&!$this->checkAuth()) return false

   $data = array('media_id' =>$media_id)

   //#TODO 暂不确定此接口是否需要让视频文件走http协议

   //如果要获取的素材是视频文件时,不能使用https协议,必须更换成http协议

   //$url_prefix = $is_video?str_replace('https','http',self::API_URL_PREFIX):self::API_URL_PREFIX

   $result = $this->http_post(self::API_URL_PREFIX.self::MEDIA_FOREVER_GET_URL.'access_token='.$this->access_token,self::json_encode($data))

   if ($result)

   {

       if (is_string($result)) {

           $json = json_decode($result,true)

           if (isset($json['errcode'])) {

               $this->errCode = $json['errcode']

               $this->errMsg = $json['errmsg']

               return false

           }

           return $json

       }

       return $result

   }

   return false

}

/**

* 删除永久素材(认证后的订阅号可用)

* @param string $media_id 媒体文件id

* @return boolean

*/

public function delForeverMedia($media_id){

   if (!$this->access_token &&!$this->checkAuth()) return false

   $data = array('media_id' =>$media_id)

   $result = $this->http_post(self::API_URL_PREFIX.self::MEDIA_FOREVER_DEL_URL.'access_token='.$this->access_token,self::json_encode($data))

   if ($result)

   {

       $json = json_decode($result,true)

       if (!$json || !empty($json['errcode'])) {

           $this->errCode = $json['errcode']

           $this->errMsg = $json['errmsg']

           return false

       }

       return true

   }

   return false

}

/**

* 获取永久素材列表(认证后的订阅号可用)

* @param string $type 素材的类型,图片(image)、视频(video)、语音 (voice)、图文(news)

* @param int $offset 全部素材的偏移位置,0表示从第一个素材

* @param int $count 返回素材的数量,取值在1到20之间

* @return boolean|array

* 返回数组格式:

* array(

*  'total_count'=>0, //该类型的素材的总数

*  'item_count'=>0,  //本次调用获取的素材的数量

*  'item'=>array()   //素材列表数组,内容定义请参考官方文档

* )

*/

public function getForeverList($type,$offset,$count){

   if (!$this->access_token &&!$this->checkAuth()) return false

   $data = array(

       'type' =>$type,

       'offset' =>$offset,

       'count' =>$count,

   )

   $result = $this->http_post(self::API_URL_PREFIX.self::MEDIA_FOREVER_BATCHGET_URL.'access_token='.$this->access_token,self::json_encode($data))

   if ($result)

   {

       $json = json_decode($result,true)

       if (isset($json['errcode'])) {

           $this->errCode = $json['errcode']

           $this->errMsg = $json['errmsg']

           return false

       }

       return $json

   }

   return false

}

/**

* 获取永久素材总数(认证后的订阅号可用)

* @return boolean|array

* 返回数组格式:

* array(

*  'voice_count'=>0, //语音总数量

*  'video_count'=>0, //视频总数量

*  'image_count'=>0, //图片总数量

*  'news_count'=>0   //图文总数量

* )

*/

public function getForeverCount(){

   if (!$this->access_token &&!$this->checkAuth()) return false

   $result = $this->http_get(self::API_URL_PREFIX.self::MEDIA_FOREVER_COUNT_URL.'access_token='.$this->access_token)

   if ($result)

   {

       $json = json_decode($result,true)

       if (isset($json['errcode'])) {

           $this->errCode = $json['errcode']

           $this->errMsg = $json['errmsg']

           return false

       }

       return $json

   }

   return false

}

/**

* 上传图文消息素材,用于群发(认证后的订阅号可用)

* @param array $data 消息结构{"articles":[{...}]}

* @return boolean|array

*/

public function uploadArticles($data){

   if (!$this->access_token &&!$this->checkAuth()) return false

   $result = $this->http_post(self::API_URL_PREFIX.self::MEDIA_UPLOADNEWS_URL.'access_token='.$this->access_token,self::json_encode($data))

   if ($result)

   {

       $json = json_decode($result,true)

       if (!$json || !empty($json['errcode'])) {

           $this->errCode = $json['errcode']

           $this->errMsg = $json['errmsg']

           return false

       }

       return $json

   }

   return false

}

/**

* 上传视频素材(认证后的订阅号可用)

* @param array $data 消息结构

* {

*     "media_id"=>"",     //通过上传媒体接口得到的MediaId

*     "title"=>"TITLE",    //视频标题

*     "description"=>"Description"        //视频描述

* }

* @return boolean|array

* {

*     "type":"video",

*     "media_id":"mediaid",

*     "created_at":1398848981

*  }

*/

public function uploadMpVideo($data){

   if (!$this->access_token &&!$this->checkAuth()) return false

   $result = $this->http_post(self::UPLOAD_MEDIA_URL.self::MEDIA_VIDEO_UPLOAD.'access_token='.$this->access_token,self::json_encode($data))

   if ($result)

   {

       $json = json_decode($result,true)

       if (!$json || !empty($json['errcode'])) {

           $this->errCode = $json['errcode']

           $this->errMsg = $json['errmsg']

           return false

       }

       return $json

   }

   return false

}

前提需要将ip加入微信公众号白名单

接口调用使用Post方法:

获取access_token 获取到后将其作为参数之一Post到微信专用接口


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11779563.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存