Facebook Open Graph的动态图像og:图像元标记

时间:2013-04-05 10:54:05

标签: dynamic facebook-opengraph

我想在Facebook上分享我网站上的图片。图像可以是动态的,但其他元将保持不变。

我有没有办法在OG:IMAGE标签中拥有动态数据,或者我必须使用FB Post API的其他选项。

2 个答案:

答案 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})