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

 我来答
Lin枫F
2015-03-24 · TA获得超过116个赞
知道小有建树答主
回答量:219
采纳率:0%
帮助的人:195万
展开全部

//素材
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;
}


追问
兄弟能给一段JAVA的代码吗,PHP真心不会。。。新增永久图片的素材
追答
额,不好意思java我就不知道了
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dll0605410103
2020-07-14 · TA获得超过135个赞
知道答主
回答量:1710
采纳率:37%
帮助的人:150万
展开全部

大师助手网页链接

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式