96编辑器旗下产品
找图
终身
ID:0
到期时间:永久
退出登录
您的位置:首页 > 百科管理 > 详情

微信新增永久图片素材-微信公众平台新建图文素材,图片从其他地方复制直接粘贴到编辑器里面,可以永久保存吗?

原创:找图网 2023-05-28 16:23:40
  • 求一段微信开发新增永久图片素材的接口代码

  • //素材

    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\'}

    * @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_::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_::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\'}

    * @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_::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_::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_::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_::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_::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_::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_::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_::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_::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;

    }

  • php微信上传永久图片素材求代码

  • 您好,这样的:

    //素材

    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\'}

    * @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_::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_::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\'}

    * @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_::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_::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_::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_::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_::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_::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_::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;

    }

  • 微信公众平台新建图文素材,图片从其他地方复制直接粘贴到编辑器里面,可以永久保存吗?

  • 从其他地方复制过来的图片,也可以正常打开文章内容,图片也正常显示的。你也可以上传到素材库再添加到内容中。文章发布后,后期删除素材库图片,对该文章没有影响。。

    最新文章 更多
    最新素材 更多
    公司介绍 网站地图 图片资讯
    Copyright © 2010-2022 山东找图网络科技有限公司  鲁ICP备18007836号-3  邮箱:15653358549@163.com