【发布时间】:2013-02-28 23:42:11
【问题描述】:
我需要在 Facebook 上发布带有参数的帖子。我使用了这里的解决方案: Generating Facebook Open Graph meta tags dynamically 和这里:Dynamic Facebook og Meta Tags in Wordpress PHP
最终工作代码:
<?php
$params = array();
if(count($_GET) > 0) {
$params = $_GET;
} else {
$params = $_POST;
}
// defaults
if($params['title'] == "") $params['title'] = "default_title";
if($params['score'] == "") $params['score'] = "1234567";
?>
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en-US"
xmlns:fb="https://www.facebook.com/2008/fbml">
<head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# pathoflight: http://ogp.me/ns/fb/pathoflight#">
<meta property="fb:app_id" content="MY_APP_ID" />
<meta property="og:type" content="pathoflight:level" />
<meta property="og:url" content="<?php echo 'https://path-of-light.herokuapp.com'.$_SERVER['REQUEST_URI']; ?>"/>
<meta property="og:image" content="https://fbstatic-a.akamaihd.net/images/devsite/attachment_blank.png" />
<meta property="og:title" content="<?php echo $params['title']; ?>" />
<meta property="pathoflight:score" content="<?php echo $params['score']; ?>" />
</head>
它在浏览器和 Facebook 调试器中完美运行,但我通过 Facebook API Explorer 发布的帖子总是会导致 title 和 score 的默认值。如何让 Facebook 读取我的 real 参数?
【问题讨论】:
-
您的错误中的 url 没有显示任何标题或分数的值。您确定在发帖时传递了正确的值吗? "path-of-light.herokuapp.com/level_new.php?title=&score="
-
@VishweshShetty 是的,我确定。我在 Facebook Graph Explorer 中发布了这样的帖子:me/pathoflight:complete?level=path-of-light.herokuapp.com/…
-
你可以尝试使用'add field'选项然后使用这个值->'path-of-light.herokuapp.com/…'作为'level'而不是在url中传递level作为参数。
-
@VishweshShetty 结果是一样的。我更进一步并更新了问题。
-
@VishweshShetty 你是对的!谢谢! :)
标签: php facebook facebook-graph-api