使用 href 和 javascript 抛出错误在 facebook 上分享页面

share a page on facebook using href and javascript throwing error

我有一个从 realtime-database 加载内容的页面,它是一个事件页面,因此图像、标题等根据查询参数的不同而不同。在我尝试通过 jquery 添加 og 元标记信息之前,但它没有用,所以我改变了我的方法,使用节点的云函数,使用 express,节点 returns 一个包含所有元标记的页面填充但是当我单击按钮与该 facebook 共享页面时 url window.open("https://www.facebook.com/sharer/sharer.php?u =https://apptcc-6f556.firebaseapp.com/evento"+url);我得到一个错误,url 只是来自 location.search 函数的一个字符串。无论如何,如果我手动将事件的 url 复制到 facebook 上,一切都会正常进行。我会给你看图片和代码

这是index.ejs

头部的代码
<meta property="og:image" content="<%= evento.caminho %>">
<meta property="og:title" content="<%= evento.titulo %>">
<meta property="og:description" content="<%= evento.descricao %>">


    

这是我的 index.js 云函数中的代码

const functions = require('firebase-functions');
const admin = require('firebase-admin');
const express = require("express");
const app = express();
admin.initializeApp();
function getEvento(pais,categoria,id){
    return adminRef.child(`eventos/${pais}/${categoria}/${id}`).once("value")
    .then(evento=>evento.val());
}

app.get("/evento",(req,res)=>{
    const evento = {
        titulo:"teste",
        id:"-MCxaVd4JwRcbdK174Sn",
        descricao:"dasd",
        caminho:"https://firebasestorage.googleapis.com/v0/b/apptcc- 
        6f556.appspot.com/o/eventos%2FBrazil%2FMG%2FEspinosa%2FVLxS4OQN4CaTK89A7f6853wEX7P2%2F-M7ZG- 
        5Yg9u41UC_Pda-?alt=media&token=e7f28393-6c0a-4095-8c46-5485ed82824c"
    }
    return res.render("index.ejs",{evento});


    getEvento(req.query.pais,req.query.categoria,req.query.id)
    .then(evento=>{
        return res.render("index.ejs",{evento})
    })
    .catch(error=>{
        console.log(error);
        res.send(error);
    })

 })

 exports.app = functions.https.onRequest(app)

顺便说一下,当我创建 object 静态时,它可以工作,但是当它来自数据库时却没有。 并且在我的云函数控制台上也得到这个错误,这真的很奇怪,因为它说是空的,但是当我在 html 的 body 中打印时它工作正常,当我打开 google console 并检查 head 元素,即使它说它为 null,有关事件的所有信息都设置在 og meta 标记中

没关系,我发现了错误,发生的事情是,当我写我的 url 时,我使用“&”字符来分隔参数,而发生的是 facebook 的 api 或其他那是,无法理解 & 字符,所以我只使用了 javascript 函数 encodeURIComponent 并且它起作用了