OpenGraph:我有一个对象 A,我在其上执行了两个不同的操作:B 和 C。两个操作的对象具有相同的 url,但我想设置不同的图标 (og:image)。
可能吗?
OpenGraph:我有一个对象 A,我在其上执行了两个不同的操作:B 和 C。两个操作的对象具有相同的 url,但我想设置不同的图标 (og:image)。
可能吗?
是的,当然可以。在发布操作时,传递带有图像参数的 object_url,您可以获取并放入对象脚本中的 og:image 标记中。例如,如果您使用php:
发布动作:
$facebook->api("me/app_namaspace:action_name","POST",array('object_name'=>"$object_url?pic=$image_url, 'access_token'=>$access_token));
假设 object_name.php 有对象元标记:
//object_name.php
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# postappfg: http://ogp.me/ns/fb/app_namespace#">
<title></title>
<meta property="fb:app_id" content="appid" />
<meta property="og:type" content="app_namespace:object_name" />
<meta property="og:title" content="title" />
<meta property="og:image" content="<?php echo $_GET['pic'];?>"/>
</head>
Smita 你忘了缓存。一旦注册了一个对象, og:image 就是曾经注册过的,而不是新的。当然,如果您使用 Facebook 调试器,您会看到不同的画面,但这是因为 Facebook 调试器“重新抓取”对象并重置数据。
如果我们遵循 Open graph 协议,一个 Open Graph 对象由一张图片定义。但它存在一种改变 Open Graph 对象图片的方法:
为您的对象定义一个默认的 og:image,因为它是强制性的,并且当您发布活动时,您必须添加一个带有图片 URL 的“image[0][url]”属性。og:image 图片将被覆盖。例子:
https://graph.facebook.com/me/mywhiskyapp:buy?whisky=http://samples.ogp.me/306369449462168&access_token=[...]&method=post&image[0][url]=http://img .diytrade.com/cdimg/339590/1362083/0/1144228175/WHISKY.jpg