我正在创建一个藤蔓视频分享网站。
我遇到了一些问题。我的og:image:secure_url不会正确,因为网址会像这样显示..
https://v.cdn.vine.co/v/thumbs/2013/04/30/5D309EAF-962F-41E1-8F22-41E4AA50FFB7-967-00000195162F03BD_1.0.7.mp4.jpg?versionId=JQ9YuwCeBry1sGZpZU40Z3wc_VF_PMb1
所以facebook在播放时给了我这个错误..
Object at URL 'http://vinesandstuff.com/' of type 'article' is invalid because the given value '' for property 'og:image:secure_url' could not be parsed as type 'url'.
如何在后端设置..
og:image:secure_url setup,注意脚本使用Smarty代码。
<meta property="og:image:secure_url" content="{php} echo vine_pic($this->_tpl_vars['p']['youtube_key']);{/php}" />
以及从twitter获取og:image的脚本..
function vine_pic( $id )
{
$vine = file_get_contents("http://vine.co/v/{$id}");
preg_match('/property="og:image" content="(.*?)"/', $vine, $matches);
return ($matches[1]) ? $matches[1] : false;
}
我需要帮助
正在删除网址?versionId=JQ9YuwCeBry1sGZpZU40Z3wc_VF_PMb1
我查看了其他stackoverflow问题,但我不太明白它应该如何在语法中设置。有人能帮助我吗?非常感谢。
答案 0 :(得分:0)
使用parse_url
和http_build_query
将该网址拆开并将其重新组合在一起,而不使用versionID
我从未使用过smarty标签,所以我不确定那部分。在php中我会做这样的事情:(未经测试)
$pic_link=vine_pic($this->_tpl_vars['p']['youtube_key']);
$parsed=parse_url($pic_link);
$pic_vars=parse_str($parsed['query']);
unset($pic_vars['$parsed']);
$new_query=http_build_query($pic_vars);
$new_pic_link=$parsed['scheme'].$parsed['host'].$parsed['path']'?'.$new_query;
//if the above is missing a slash, change the dot to .'/'.
?>
<meta property="og:image:secure_url" content="<?php echo $new_pic_link; ?>">