Maison > Questions et réponses > le corps du texte
Utilisation de nodejs pour le développement de WeChat
Les documents téléchargés sont des documents temporaires
Le mécanisme de réponse à la vidéo est le suivant :
if(content === '视频'){
var data = yield wechatApi.uploadMaterial('video',__dirname+'\public\video\3.mp4')
console.log('data')
console.log(data)
reply = {
type:'video',
title:'回复的视频',
description:'视频描述',
mediaId:data.media_id
}
}
Après avoir saisi « vidéo » dans le client mobile WeChat,
l'affichage en arrière-plan est le suivant :
Si un code comme celui-ci apparaît, cela devrait signifier que le téléchargement a réussi, n'est-ce pas ? Cependant, le message affiché sur le téléphone mobile indique que le compte officiel est temporairement indisponible. Veuillez réessayer plus tard ? pourquoi donc?
ps : J'ai aussi constaté que lors du téléchargement, il était téléchargé trois fois ? Je n'ai posté qu'une seule "vidéo", comment se fait-il qu'elle ait été mise en ligne trois fois ?
Le code téléchargé est le suivant :
Wechat.prototype.uploadMaterial = function(type,filepath){
var that = this;
var form = {
media: fs.createReadStream(filepath)
}
return new Promise(function(resolve,reject){
that
.fetchAccessToken()
.then(function(data){
console.log(data);
var url = api.upload +'access_token='+data.access_token + '&type='+type;
request({method:'POST',url:url,formData:form,json:true}).then(function(response){
var _data = response.body;
//console.log(data);
if(_data){
resolve(_data)
}
else{
throw new Error('upload Material fail')
}
})
.catch(function(err){
reject(err)
})
})
})
}
Quant à l'interface de téléchargement, elle ressemble à ceci :
var wechatApi = new Wechat(config.wechat)
C'est l'instanciation de ce qui précède. Les données requises pour l'instanciation spécifique sont obtenues à partir de la configuration.
Lors du téléchargement, utilisez la méthode wechatApi.uploadMaterial() pour y parvenir.
typecho2017-06-30 09:59:20
1. Pourquoi WeChat indique-t-il que le compte officiel est temporairement incapable de fournir des services
Le mécanisme de WeChat est qu'après que l'utilisateur a envoyé des informations au compte officiel, si le serveur ne revient pas dans les 5 secondes, il demandera au fonctionnaire le compte est temporairement incapable de fournir des services
Le mécanisme des 5 secondes peut être résolu d'autres manières. Tout d'abord, le contenu vide est renvoyé à WeChat afin de ne pas demander, puis un contenu de réponse
correct est renvoyé à WeChat une fois le programme traité
2. Le problème du téléchargement trois fois nécessite que vous publiiez le code de l'interface de téléchargement et le code du traitement du téléchargement, puis nous parlerons de la façon de le résoudre
滿天的星座2017-06-30 09:59:20
J'ai également rencontré ce problème lors du développement. Lorsque l'utilisateur envoie le mot "vidéo", l'arrière-plan télécharge effectivement le matériel vidéo (le code de téléchargement est écrit sans problème), mais le moment du téléchargement de la vidéo est dû à le réseau ou WeChat. L'arrière-plan lui-même dépasse parfois 5 secondes (les vidéos plus volumineuses dépassent 5 secondes dans le compte test. À ce moment, le serveur renvoie directement un message d'invite : Ce compte officiel est temporairement incapable de fournir des services). Il faudra un certain temps au programme pour imprimer les données et les informations XML de votre capture d'écran.
Donc自动回复的时候上传视频素材
cette approche est inappropriée. La vidéo doit être téléchargée à l'avance. L'utilisateur envoie une "vidéo", obtient directement les informations vidéo pré-téléchargées et répond à l'utilisateur