gpt4 book ai didi

c# - ASP.NET 中的 Facebook channel 文件

转载 作者:太空狗 更新时间:2023-10-30 01:08:31 25 4
gpt4 key购买 nike

根据 facebook 的 Javascript SDK,facebook 应用程序应在其初​​始代码中包含“ channel 文件”。如此处发布: http://developers.facebook.com/docs/reference/javascript/

我不完全理解他们为什么需要那个,或者那个文件的内容应该是什么,但我只是使用他们的基本示例,因为它可能有助于解决某些特定问题。

我的问题是——他们说应该缓存这个“channel.html”文件。甚至给出了一个如何用 PHP 缓存它的例子:

 <?php
$cache_expire = 60*60*24*365;
header("Pragma: public");
header("Cache-Control: max-age=".$cache_expire);
header('Expires: ' . gmdate('D, d M Y H:i:s', time()+$cache_expire) . ' GMT');
?>

事情是,据我所知,这不能用 asp.net 完成,因为我不能将 c# 代码放在 html 文件中。

所以与此同时我只是将其硬编码添加,例如:

<head>
<meta http-equiv="cache-control" content="max-age=31536000;public" />
<meta http-equiv="expires" content="31536000" />
</head>

我不确定这是正确的做法,因为“expires”应该以特定格式的日期给出。

有什么想法我怎样才能做对?也许我可以改为提供 facebook“channel.aspx”?

最佳答案

这里是你如何在 asp.net 中按照这个 link 做的:

  1. 创建通用 HTTP 处理程序(ashx 文件):

    public class FacebookChannel : IHttpHandler
    {

    public void ProcessRequest(HttpContext context)
    {

    HttpResponse response = context.Response;
    response.ClearHeaders();

    const int cacheExpires = 60 * 60 * 24 * 365;
    response.AppendHeader("Pragma", "public");
    response.AppendHeader("Cache-Control", "max-age=" + cacheExpires);
    response.AppendHeader("Expires", DateTime.Now.ToUniversalTime().AddSeconds(cacheExpires).ToString("r"));
    context.Response.ContentType = "text/html";
    context.Response.Write("<script src=\"//connect.facebook.net/en_US/all.js\"></script>");
    }
    public bool IsReusable { get { return false; } }
    }

确保在 FB.init 函数中引用 URL:

channelUrl : '//WWW.YOUR_DOMAIN.COM/fbchannel.ashx',

关于c# - ASP.NET 中的 Facebook channel 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9187256/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com