【发布时间】:2017-05-29 18:21:46
【问题描述】:
我目前正在处理 facebook 共享,但似乎没有太多关于使用 C# 进行 facebook 共享的主题。想学点东西...
我在如下剃刀视图之一中有 Open Graph 元标记:
<head>
<meta name="viewport" content="width=device-width" />
<title>Hello World!</title>
<meta property="fb:app_id" content="************" />
<meta property="og:site_name" content="www.hello-world.com" />
<meta property="og:type" content="website" />
<meta property="og:url" content="http://hello-world.com/home/fbshare" />
<meta property="og:title" content="How are you doing today?" />
<meta property="og:description" content="Great to know you are doing fine." />
<meta name="author" content="Hello" />
<meta property="og:image" content="https://images.pexels.com/photos/2324/skyline-buildings-new-york-skyscrapers.jpg?w=940&h=650&auto=compress&cs=tinysrgb" />
<meta property="og:image:type" content="image/jpeg" />
<meta property="og:image:width" content="800" />
<meta property="og:image:height" content="420" />
</head>
对于普通用户,我想将他们从这个视图重定向到其他地方,如下所示:
@{Response.Redirect("Somewhere in my application")};
但我也不想重定向 facebook scraper。无论如何我可以识别 facebook 或 facebook scraper 用户代理,如果我发现这是 facebook 用户代理,请不要将他重定向到其他任何地方,将它们从视图重定向到其他地方。
P.S:根据 facebook 官方文档,我必须找到 facebook 用户代理并允许他们抓取我的 Open Graph 元标记,但我无法挖掘。
Facebook 爬虫需要能够访问您的内容 正确地抓取和分享它。您的页面应该对 履带式。如果您需要登录或以其他方式限制访问您的 内容,您需要将我们的爬虫列入白名单。你也应该豁免 它来自 DDoS 保护机制。
如果在抓取时内容不可用,您可以强制 一旦它变得可用,通过将 URL 传递给 共享调试器。
可以通过以下任一用户代理字符串来识别 Facebook 爬虫:
facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php) 或者 facebookexternalhit/1.1
【问题讨论】:
标签: asp.net-mvc facebook facebook-graph-api razor