cari

Rumah  >  Soal Jawab  >  teks badan

node.js - Pembangunan Nodejs WeChat, video berjaya dimuat naik, tetapi ia tidak dikembalikan kepada pengguna

Menggunakan nodej untuk pembangunan WeChat
Yang dimuat naik adalah bahan sementara
Mekanisme balasan kepada video adalah seperti berikut:

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

Selepas memasukkan "video" dalam klien WeChat mudah alih,
paparan latar belakang adalah seperti berikut:

Jika kod seperti ini muncul, ini bermakna muat naik berjaya, bukan? Walau bagaimanapun, mesej yang dipaparkan pada telefon bimbit ialah akaun rasmi tidak tersedia buat sementara waktu. Sila cuba sebentar lagi? kenapa begitu?
ps: Saya juga mendapati bahawa semasa memuat naik, ia telah dimuat naik tiga kali? Saya hanya menyiarkan satu "video", kenapa ia dimuat naik tiga kali?
Kod yang dimuat naik adalah seperti berikut:

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)
    })
    })
})    
}

Bagi antara muka muat naik, ia adalah seperti ini:
var wechatApi = Wechat baharu(config.wechat)
Ini ialah instantiasi di atas Data yang diperlukan untuk instantiasi tertentu diperoleh daripada konfigurasi.
Apabila memuat naik, gunakan kaedah wechatApi.uploadMaterial() untuk mencapai ini.

过去多啦不再A梦过去多啦不再A梦2745 hari yang lalu1164

membalas semua(2)saya akan balas

  • typecho

    typecho2017-06-30 09:59:20

    1. Mengapa WeChat mengembalikan bahawa akaun rasmi tidak dapat menyediakan perkhidmatan buat sementara waktu
    Mekanisme WeChat ialah selepas pengguna menghantar maklumat ke akaun rasmi, jika pelayan tidak kembali dalam masa 5 saat, ia akan meminta pihak rasmi akaun tidak dapat menyediakan perkhidmatan buat sementara waktu

    Mekanisme 5 saat boleh diselesaikan dengan cara lain Pertama, kandungan kosong dikembalikan kepada WeChat agar tidak digesa, dan kemudian kandungan respons
    yang betul dikembalikan kepada WeChat selepas program diproses

    2 Masalah memuat naik tiga kali memerlukan anda menghantar kod antara muka muat naik dan kod pemprosesan muat naik, dan kemudian kami akan bercakap tentang cara menyelesaikannya

    .

    balas
    0
  • 滿天的星座

    滿天的星座2017-06-30 09:59:20

    • Saya juga mengalami masalah ini semasa saya sedang membangun Apabila pengguna menghantar perkataan "video", latar belakang memang memuat naik bahan video (kod muat naik ditulis tanpa masalah), tetapi masa memuat naik video adalah disebabkan. rangkaian atau WeChat Latar belakang itu sendiri kadangkala melebihi 5 saat (video yang lebih besar melebihi 5 saat dalam akaun ujian Pada masa ini, pelayan secara langsung mengembalikan mesej segera: Akaun rasmi ini tidak dapat menyediakan perkhidmatan buat sementara waktu). Ia akan mengambil sedikit masa untuk program mencetak data dan maklumat xml tangkapan skrin anda.

    • Jadi自动回复的时候上传视频素材pendekatan ini tidak sesuai Video harus dimuat naik lebih awal Pengguna menghantar "video", terus mendapatkan maklumat video yang telah dimuat naik dan membalas kepada pengguna.

      balas
      0
  • Batalbalas