Bei der Beantwortung von Bildern, Stimmen und Videos verwenden öffentliche WeChat-Konten media_id, um zugehörige Dateien aufzurufen. Viele Freunde fragten, wie dies entwickelt und implementiert werden könne. In diesem Artikel wird erläutert, wie Sie während des Entwicklungsprozesses der öffentlichen WeChat-Plattform Multimediadateien hoch- und herunterladen.
1. Multimediadateien hochladen
Offizielle Konten können diese Schnittstelle aufrufen, um Bilder, Stimmen, Videos und andere Dateien auf den WeChat-Server hochzuladen. Der Server gibt die entsprechende Medien-ID zurück. Das offizielle Konto kann Multimedia basierend auf dieser Medien-ID abrufen. Bitte beachten Sie, dass media_id wiederverwendbar ist und zum Aufrufen dieser Schnittstelle ein HTTP-Protokoll erforderlich ist.
Normalerweise erfolgt das Hochladen von Dateien über ein HTML-Formular, aber über CURL können Sie das Formular direkt per POST auf der Serverseite senden, ohne den Browser verwenden zu müssen, um die Datei-Upload-Funktion abzuschließen.
Es ist zu beachten, dass der Dateiname ein vollständiger absoluter Pfad sein muss und dem absoluten Pfad zur Unterscheidung ein „@“ vorangestellt werden muss .
Auf einem Windows-Server lautet das Formatbeispiel: „@F:israeluploadwinter.jpg“ und auf einem Linux-Server lautet das Formatbeispiel: „@home/israel/upload/winter.jpg“.
http-Anfragemethode: POST/FORM
http://file.api.weixin.qq.com/cgi-bin/media/upload?access_token=ACCESS_TOKEN&type=TYPE
Parameterbeschreibung
Parameter |
Ist es notwendig | Erklärung | ||||||||||||
access_token |
Ja |
Anmeldeinformationen der Anrufschnittstelle
|
||||||||||||
type |
ist ein { "type": "image", "media_id": "QQ9nj-7ctrqA8t3WKU3dQN24IuFV_516MfZRZNnQ0c-BFVkk66jUkPXF49QE9L1l", "created_at": 1389793969} Nach dem Login kopieren |
Mediendateityp, jeweils mit Bildern ( Bild), Sprache, Video und Miniaturansicht |
||||||||||||
media |
is |
Mediendateiidentifizierung in Formulardaten, einschließlich Dateiname, Dateilänge, Inhaltstyp und anderen Informationen |
Bilder hochladen
Ergebnisse zurückgeben
{ "type": "voice", "media_id": "5Idx79V9E3XfBCz_A50gr1a1_klgPpJnb_eq73yz0bn-prhIsNlwI3n6jQgshmWk", "created_at": 1389794760}
Stimme hochladen
Ergebnisse zurückgeben
{ "type": "video", "media_id": "Jm-Wq0nXtA_oN1qNydQRP03dCsB0R2t5gCHDM3QNkBmMRE1WBaorVJNQTBRHvK9-", "created_at": 1389794768}
Video hochladen
{ "type": "thumb", "thumb_media_id": "2RhP0caRKHVOmZO5AKelHkK--vqPPwgUaRp5-WE63dvmmPRWiYVKgvNblIp_gv79", "created_at": 1389794771}
参数 |
描述 |
type |
媒体文件类型,分别有图片(image)、语音(voice)、视频(video)和缩略图(thumb,主要用于视频与音乐格式的缩略图) |
media_id |
媒体文件上传后,获取时的唯一标识 |
created_at |
媒体文件上传时间戳 |
Parameter | Beschreibung | tr>
type |
Zu den Mediendateitypen gehören Bilder, Sprache, Videos und Miniaturansichten (hauptsächlich für Miniaturansichten in Video- und Musikformaten verwendet) |
media_id | Nachdem die Mediendatei hochgeladen wurde, wird die eindeutige Bezeichner bei Erhalt |
created_at |
Zeitstempel für das Hochladen der Mediendatei |
注意事项
上传的多媒体文件有格式和大小限制,如下:
图片(image): 128K,支持JPG格式
语音(voice):256K,播放长度不超过60s,支持AMR\MP3格式
视频(video):1MB,支持MP4格式
缩略图(thumb):64KB,支持JPG格式
媒体文件在后台保存时间为3天,即3天后media_id失效。对于需要重复使用的多媒体文件,可以每3天循环上传一次,更新media_id。
二、下载多媒体文件
公众号可调用本接口来获取多媒体文件。请注意,视频文件不支持下载,调用该接口需http协议。
下载文件使用获取图片数据,写入新文件的方法。
http请求方式: GET
http://file.api.weixin.qq.com/cgi-bin/media/get?access_token=ACCESS_TOKEN&media_id=MEDIA_ID
参数说明
参数 |
是否必须 |
说明 |
access_token |
是 |
调用接口凭证 |
media_id |
是 |
媒体文件ID |
下载图片
代码实现
返回HTTP头示例如下
{ "url": "http://file.api.weixin.qq.com/cgi-bin/media/get?access_token=My4oqLEyFVrgFF-XOZagdvbTt9XywYjGwMg_GxkPwql7-f0BpnvXFCOKBUyAf0agmZfMChW5ECSyTAgAoaoU2WMyj7aVHmB17ce4HzLRZ3XFTbm2vpKt_9gYA29xrwIKpnvH-BYmNFSddt7re5ZrIg&media_id=QQ9nj-7ctrqA8t3WKU3dQN24IuFV_516MfZRZNnQ0c-BFVkk66jUkPXF49QE9L1l", "content_type": "image/jpeg", "http_code": 200, "header_size": 308, "request_size": 316, "filetime": -1, "ssl_verify_result": 0, "redirect_count": 0, "total_time": 1.36, "namelookup_time": 1.016, "connect_time": 1.078, "pretransfer_time": 1.078, "size_upload": 0, "size_download": 105542, "speed_download": 77604, "speed_upload": 0, "download_content_length": 105542, "upload_content_length": 0, "starttransfer_time": 1.141, "redirect_time": 0}
下载语音
代码实现
返回HTTP头如下
{ "url": "http://file.api.weixin.qq.com/cgi-bin/media/get?access_token=My4oqLEyFVrgFF-XOZagdvbTt9XywYjGwMg_GxkPwql7-f0BpnvXFCOKBUyAf0agmZfMChW5ECSyTAgAoaoU2WMyj7aVHmB17ce4HzLRZ3XFTbm2vpKt_9gYA29xrwIKpnvH-BYmNFSddt7re5ZrIg&media_id=5Idx79V9E3XfBCz_A50gr1a1_klgPpJnb_eq73yz0bn-prhIsNlwI3n6jQgshmWk", "content_type": "audio/amr", "http_code": 200, "header_size": 306, "request_size": 316, "filetime": -1, "ssl_verify_result": 0, "redirect_count": 0, "total_time": 0.125, "namelookup_time": 0.031, "connect_time": 0.063, "pretransfer_time": 0.063, "size_upload": 0, "size_download": 10470, "speed_download": 83760, "speed_upload": 0, "download_content_length": 10470, "upload_content_length": 0, "starttransfer_time": 0.125, "redirect_time": 0}
可以看出,MP3的语音格式被压缩成AMR格式了。
下载缩略图
实现代码
返回HTTP头如下
{ "url": "http://file.api.weixin.qq.com/cgi-bin/media/get?access_token=My4oqLEyFVrgFF-XOZagdvbTt9XywYjGwMg_GxkPwql7-f0BpnvXFCOKBUyAf0agmZfMChW5ECSyTAgAoaoU2WMyj7aVHmB17ce4HzLRZ3XFTbm2vpKt_9gYA29xrwIKpnvH-BYmNFSddt7re5ZrIg&media_id=2RhP0caRKHVOmZO5AKelHkK--vqPPwgUaRp5-WE63dvmmPRWiYVKgvNblIp_gv79", "content_type": "image/jpeg", "http_code": 200, "header_size": 306, "request_size": 316, "filetime": -1, "ssl_verify_result": 0, "redirect_count": 0, "total_time": 0.094, "namelookup_time": 0, "connect_time": 0.047, "pretransfer_time": 0.047, "size_upload": 0, "size_download": 6057, "speed_download": 64436, "speed_upload": 0, "download_content_length": 6057, "upload_content_length": 0, "starttransfer_time": 0.094, "redirect_time": 0}
至于回复相应的消息,就是利用消息接口或者客服接口,构造成相应的消息就行了,和构造文本,图文消息的方法是一样的。
更多微信公众平台开发 上传下载多媒体文件 相关文章请关注PHP中文网!