【微信上傳素材接口--臨時&永久性】微信臨時&永久性上傳、獲取返回的medie_id 和url


上傳圖片到微信服務器獲得media_id和url (臨時&永久性)

寫在前面:php>=5.6,使用curlFile類,php<5.6使用@realpath(file)

其他接口類:https://www.cnblogs.com/gjw-hsf/p/7375261.html

 

轉載地址:https://blog.csdn.net/httIsAWang/article/details/71576880

臨時3天內有效;post請求url:

臨時3天接口:
$url = "https://api.weixin.qq.com/cgi-bin/media/upload?access_token=".$token."&type=".$type;
永久素材接口:
$url = "https://api.weixin.qq.com/cgi-bin/material/add_material?access_token=".$token."&type=".$type;

如果是本地選擇圖片並上傳可能需要上傳到服務器並在服務端進行post;

0、先是獲取token;

function get_token($id, $s){
   $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid='$id'&secret='$s'";
            
               $ch = curl_init();
               curl_setopt($ch, CURLOPT_URL, $url);
               curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
               curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); 
               curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
               $output = curl_exec($ch);
               curl_close($ch);
               $jsoninfo = json_decode($output, true);    
               $token = $jsoninfo["access_token"];
            return $token;
}

1、獲取media_id和url   --- $filepath 必須得是 realpath(public_path('images/a1.png'))絕對路徑

PHP的cURL支持通過給CURL_POSTFIELDS傳遞關聯數組(而不是字符串)來生成multipart/form-data的POST請求。

傳統上,PHP的cURL支持通過在數組數據中,使用“@+文件全路徑”的語法附加文件,供cURL讀取上傳。這與命令行直接調用cURL程序的語法是一致的:


$type = "image";  //聲明上傳的素材類型,這里為image
$token = get_access_token();//調用接口需要獲取token,這里使用一個封裝好的調取access_token的函數
$url = "https://api.weixin.qq.com/cgi-bin/material/add_material?access_token=".$token."&type=".$type;
        //這里是請求地址,token和素材類型通過get方式傳遞
$file_path = dirname(__FILE__)."/pro.jpg"; //這里聲明文件的路徑,使用絕對路徑 $file_data = array('media' => '@'.$file_path); //傳遞的數組,方式一:使用'@'符號加上文件的絕對路徑來指引文件。這種方式適合PHP5.5之前的版本, $file_data = array("media" => new \CURLFile($file_path)); //傳遞的數組,方式二:從PHP5.5版本以后,引入了新的CURLFile 類來指向文件,參數傳入的也是絕對路徑
$ch = curl_init();
curl_setopt($ch , CURLOPT_URL , $url);
curl_setopt($ch , CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch , CURLOPT_POST, 1);
//發送一個POST請求
curl_setopt($ch , CURLOPT_POSTFIELDS, $file_data);
//傳遞一個關聯數組,生成multipart/form-data的POST請求
$output = curl_exec($ch);//發送請求獲取結果
curl_close($ch);//關閉會話
return $output;//返回結果
返回結果:

{"media_id":"Y-wN-hbQ42QYeA5-956YrLgmGDTnl4bWqJr6AjsgoGk",

"url":"http:\/\/mmbiz.qpic.cn\/mmbiz_jpg\/gyNXEoR9bg5UfM2wEFcz3tYO4a0adXo8Y4treMlnStHt8E0mDZazhxmGiamfU06tDkzCt55YR681Npd9sasH0xg\/0?wx_fmt=jpeg"

}

 

文檔:https://mp.weixin.qq.com/wiki/10/10ea5a44870f53d79449290dfd43d006.html

測試工具接口:https://mp.weixin.qq.com/debug/cgi-bin/apiinfo?t=index&type=%E5%9F%BA%E7%A1%80%E6%94%AF%E6%8C%81&form=%E5%A4%9A%E5%AA%92%E4%BD%93%E6%96%87%E4%BB%B6%E4%B8%8A%E4%BC%A0%E6%8E%A5%E5%8F%A3%20/media/upload

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM