facebook开放图和AngularJs

facebook开放图和AngularJs,angularjs,facebook,facebook-graph-api,facebook-opengraph,iis-8,Angularjs,Facebook,Facebook Graph Api,Facebook Opengraph,Iis 8,我正在尝试将开放图形功能添加到我正在开发的AngularJs应用程序中。我希望我的应用程序的用户与他们的Facebook好友共享一个URL。我理解为了共享工作,您需要向页面添加开放图元数据标记(url、描述、图像、标题等)。我需要用户共享的URL是动态的,具有以下结构: 其中1118是要共享的游戏的Id。下面的文章介绍了如何在Angular应用程序中实现社交共享: 然而,本文指出Facebook爬虫无法呈现动态内容。因此,当Facebook爬虫访问时,我需要将请求重定向到我的服务器,以生成正

我正在尝试将开放图形功能添加到我正在开发的AngularJs应用程序中。我希望我的应用程序的用户与他们的Facebook好友共享一个URL。我理解为了共享工作,您需要向页面添加开放图元数据标记(url、描述、图像、标题等)。我需要用户共享的URL是动态的,具有以下结构:

其中1118是要共享的游戏的Id。下面的文章介绍了如何在Angular应用程序中实现社交共享:

然而,本文指出Facebook爬虫无法呈现动态内容。因此,当Facebook爬虫访问时,我需要将请求重定向到我的服务器,以生成正确的开放图元标记。我正在使用IIS(本文解释了如何通过Apache实现这一点)。以下是我的重写规则:

    <rule name="Imported Rule 1" stopProcessing="true">
        <match url="invitation/([_0-9a-z-]+)" ignoreCase="false" />
        <conditions>
            <add input="{HTTP_USER_AGENT}" pattern="facebookexternalhit/[0-9]|Twitterbot|Pinterest|Google.*snippet" />
        </conditions>
        <action type="Redirect" url="http://meta.example.com/social/meta/{R:1}" appendQueryString="false" />
    </rule>

“。这很好。我已经设置了一个单独的网站()来呈现开放图元标记,以便爬虫进行索引

问题是我需要使用og:url元标记值(这是用户的朋友单击以查看邀请的链接,我用户的大多数朋友将不是Facebook爬虫)

<meta property="og:url" content="http://example.com/game/invitation/1118" />

在中生成的页面中,我在Facebook的Open Graph Object Debugger中得到循环引用错误。Facebook的爬虫程序正在从中生成的元标记中选择标题、描述等。但是,它似乎从og:url元标记中选择并再次运行它。从我所知,这会导致循环引用

那么,当用户代理是Facebook时,如何配置IIS将请求重定向到,以便生成适当的开放图元标记并重用启动此过程()的原始URL

上面的文章()提到了如何为Apache执行此操作。我不知道如何将其转换为IIS:

[p]标志使Apache使用mod_proxy和 mod_proxy_http,而不是常规重定向。如果使用301重定向 例如,Facebook将链接到“static page.php”URL 而不是原始的URL


感谢您的帮助。我正在使用IIS 8。

而不是重定向操作:

<action type="Redirect" url="http://meta.example.com/social/meta/{R:1}" appendQueryString="false" />

您应该使用重写操作:

<action type="Rewrite" url="/social/meta/{R:1}" appendQueryString="false" /> 


请注意,您应该在同一个域上创建一个相对路径。

Hi Tom!请告诉我当前在angularjs应用程序中添加开放图功能的技术是什么。我使用的是Nodejs和express。