facebook - 动态 OpenGraph 对象 URL 不起作用

标签 facebook url facebook-graph-api parameters request

我正在尝试发布一个开放图谱事件。实际上,它使用的是静态 .html 文件。但是,如果我指向带有 url 参数的 url,我会收到错误消息。相信我,两个页面上的源代码 100% 相同。

# Dynamic call
/me/somesandbox:drive?car=http://www.domain.com/object/?og:type=somesandbox:car&og:title=Some%20car

# Static call
/me/somesandbox:drive?car=http://www.domain.com/static_car.html

错误:
“URL ‘http://www.domain.com/object/?og:type’处类型为‘网站’的对象无效,因为未提供类型为‘字符串’的必需属性‘og:type’。”

如果您查看错误,您会发现 Facebook 没有获得完整的 url。缺少参数,对吧。请帮忙!

最佳答案

您尝试使用的 Open Graph 对象 url 是这个吗?

http://www.domain.com/object/?og:type=somesandbox:car&og:title=Some%20car

我的猜测是,因为 Facebook 已经在解析 : action names 的冒号字符(即 graph.facebook.com/me/recipebox:cook?recipe= ),将它们用作您自己的参数可能不安全。

此外,可能会有一些混淆:据我所知,对象的开放图谱属性不会在这样的 URL 中传递 og:title=Some%20car .它们实际上在 URL 指向的页面中未编码,通过 open graph meta tags : <meta property="og:title" content="Some car" /> .因此,如果您尝试使用 URL 设置对象属性,它将不起作用。

不要忘记使用 Lint Debug Tool测试您的 Open Graph 对象 URL!

不过,您可能确实知道这一点,并且只是使用 URL 的 GET 参数来设置 meta标签。是这样的吗?

<meta property="og:title" content="<? echo $_GET['og:title'] ?>" />

如果是这种情况,请在不使用 : 的情况下尝试冒号。有 some debate关于它们在 URL 中是否安全的问题,但如果 Facebook 也在解析它们,那么将它们排除在外是最安全的,如下所示:

// http://www.domain.com/object/?ogtype=somesandbox:car&ogtitle=Some%20car
<meta property="og:type" content="<? echo $_GET['ogtype'] ?>" />
<meta property="og:title" content="<? echo $_GET['ogtitle'] ?>" />

我没有测试过这个,只是给出一些尝试的建议。祝你好运!

关于facebook - 动态 OpenGraph 对象 URL 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9141746/

相关文章:

facebook - 如何计算 Facebook 封面偏移量

facebook - 用户的 Facebook Messenger PSID PageScope 是否恒定

ios - Facebook邀请 friend 加入应用程序并获取选定用户的ID

iphone - iOS Facebook 登录但无法连接?

angular - 在运行时更改 Angular 5 发布 url

从 Azure 移动服务返回的 Facebook UserId 在同一 Windows Phone 应用程序中不断变化

facebook - 使用 FQL 获取用户的所有点赞(全部)

facebook - 我可以使用图形 API 为评分添加评论吗?

javascript - 如何从 url 获取某些内容或其他内容的索引

javascript - 如果 URL 以/斜杠结尾,则获取 window.location.href 返回页面名称和扩展名