我想在Facebook上分享我网站上的图片。图像可以是动态的,但其他元将保持不变。
我有没有办法在OG:IMAGE标签中拥有动态数据,或者我必须使用FB Post API的其他选项。
答案 0 :(得分:9)
是和否。 Facebook擦除您的网站一次,并缓存它找到的元数据,除非您专门去here并强制刮刀再次抓取您的网站。缓存通常会过期(可能在1-2天之后?),因此当在此缓存期之外再次请求时,Facebook将再次抓取该网站。
您可以拥有动态生成的og:image
元标记,但只会读取一个时间(每个缓存期),并且只会保存该图像实例。
例如,如果用户A共享您的网页,并且您的网页在imageA.png
标记中返回og:image
,则该图片将与您网页的元数据相关联。
如果用户B然后在相同的缓存期内共享同一页,Facebook将放弃元数据抓取并假设imageA.png
仍然是有效的{ {1}}。
答案 1 :(得分:0)
看看this Gist。
每次更新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})