Dynamic Facebook Opengraph og的动态图像:图像元标记

Dynamic Facebook Opengraph og的动态图像:图像元标记,dynamic,facebook-opengraph,Dynamic,Facebook Opengraph,我试图在facebook上分享我网站上的图片。图像可以是动态的,但其他元将保持不变 有没有一种方法可以在OG:IMAGE标签中包含动态数据,或者我必须使用FB Post API的其他选项。是和否。Facebook会抓取您的站点一次,并缓存它找到的元数据,除非您专门去强制抓取您的站点。缓存通常会过期(可能在1-2天后?),因此,当在缓存期之外再次请求时,Facebook将再次抓取该站点 您可以有一个动态生成的og:imagemeta标记,但它只在一次(每个缓存周期)读取,并且只保存图像的实例 例如

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


有没有一种方法可以在OG:IMAGE标签中包含动态数据,或者我必须使用FB Post API的其他选项。

是和否。Facebook会抓取您的站点一次,并缓存它找到的元数据,除非您专门去强制抓取您的站点。缓存通常会过期(可能在1-2天后?),因此,当在缓存期之外再次请求时,Facebook将再次抓取该站点

您可以有一个动态生成的
og:image
meta标记,但它只在一次(每个缓存周期)读取,并且只保存图像的实例

例如,如果用户A共享您的页面,并且您的页面在
og:image
标记中返回
imageA.png
,则该图像将与页面的元数据关联

如果用户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})

在Facebook上进行动态og:image动态显示的一个选项是在og:image src中添加一个cachebuster。因此,从Facebook(每24小时一次)重新扫描每个页面时,它都会看到一个新的图像。