我正在尝试在 facebook 上分享我网站上的图像。图像可以是动态的,但其他元数据将保持不变。
有没有办法可以在 OG:IMAGE 标签中获取动态数据,或者我必须使用 FB Post API 的其他选项。
我正在尝试在 facebook 上分享我网站上的图像。图像可以是动态的,但其他元数据将保持不变。
有没有办法可以在 OG:IMAGE 标签中获取动态数据,或者我必须使用 FB Post API 的其他选项。
是和不是。Facebook 会抓取您的网站一次,并缓存它找到的元数据,除非您专门去这里并强制抓取工具再次抓取您的网站。缓存通常会过期(可能在 1-2 天后?),因此当在此缓存期之外再次请求时,Facebook 将再次抓取该网站。
您可以拥有一个动态生成的og:image
元标记,但它只会被读取一次(每个缓存周期),并且只会保存该图像实例。
例如,如果用户 A 共享您的页面,并且您的页面imageA.png
在og:image
标签中返回,那么这就是将与您的页面元数据相关联的图像。
如果用户 B在相同的缓存期内共享相同的页面,Facebook 将放弃元数据抓取并假设这仍然是有效的。imageA.png
og:image
看看这个要点。
每次更新 og:image 标签时,您都应该 ping facebook 以重新抓取您的页面。
def share_facebook_fanpage(link,msg,PAGE_ID,OAUTH_ACCESS_TOKEN,apiversion='v2.8'):
BASE_URL = "https://graph.facebook.com/%s" % apiversion
POST_URL = "%s/%s/feed" % (BASE_URL, PAGE_ID)
# force facebook scape the link first to avoid not showing thumb
f = requests.post(BASE_URL, data={
'id': link,
'scrape': True,
'access_token': OAUTH_ACCESS_TOKEN
})
# share the link
r = requests.post(POST_URL, data={'access_token': OAUTH_ACCESS_TOKEN, 'link': link, 'message':msg})