收藏
回答

小程序素材现在是要在哪里上传呢?是否可以使用云存储的文件?

目前想开发发送图片类型的客服消息,但是图片素材不知道上传到哪里?从哪里获取

回答关注问题邀请回答
收藏

1 个回答

  • showms
    showms
    2020-03-31
    找到解决方法了:
    1、先手动把文件上传到云储存,然后获取到fileId
    2、调用cloud.downloadFile把文件下载下来获取到文件内容(Buffer类型)
    3、调用cloud.openapi.customerServiceMessage.uploadTempMedia把文件上传到微信服务器,获取到mediaId,接下来就可以用这个mediaId发送图片客服消息了
    
    //关注码的fileId
    const qrCodeFileId = "cloud://xxxxxxxxx.jpg";
    const result = await cloud.openapi.customerServiceMessage.send({
        touser: openid,
        msgtype: 'image',
        image: {
            mediaId: await uploadTmpMedia(qrCodeFileId)
        }
    });
    console.log(result);
    
    /**
     * 上传临时素材
     * @param fileId
     * @returns {Promise<*>}
     */
    const uploadTmpMedia = async function (fileId) {
        const res = await cloud.downloadFile({
            fileID: fileId,
        });
        const buffer = res.fileContent;
        const uploadResult = await cloud.openapi.customerServiceMessage.uploadTempMedia({
            type: 'image',
            media: {
                contentType: 'image/png',
                value: buffer
            }
        });
        console.log(uploadResult);
        return uploadResult.mediaId;
    };
    


    2020-03-31
    有用
    回复
登录 后发表内容
问题标签