5

そのドキュメントでは、Facebook は JavaScript SDK にチャネル ファイルを使用することを推奨しています。私の質問は、このファイルの作成方法に関する小さな詳細に関するものです。次の行を含む HTML ファイルを作成する必要があることは明らかです<script src="//connect.facebook.net/en_US/all.js"></script>

しかし、Facebook はこのファイルを可能な限り長くキャッシュすることを推奨し、それを行うための PHP スクリプトを提供しています。私の質問は、このスクリプトをどこに置くべきですか? channel.htmlWeb サイトのインストール (自己ホスト型の Wordpress ブログ) のルートに配置する同じファイル内。

ありがとう!

P.

4

3 に答える 3

12

チャンネルファイルには、すでに述べたようにコードのみが含まれているはずです。

<script src="//connect.facebook.net/en_US/all.js"></script>

キャッシュコードはどこにでも置くことができ、おそらくインデックスファイルに入れられます。

于 2012-04-06T14:25:47.807 に答える
5

この特定の Q&A で見落とされていると思われるいくつかの点を強調したいと思います。

(1) 私の意見では、Facebook が推奨する「channel.html」コード スニペットは別のファイルにする必要があると思います。彼はホームページ、またはウェブサイトの他の一般的なコンテンツページを意味していると思います)。

SCRIPT要素の属性が指している URL を見るとsrc、JS-SDK コードで非同期に呼び出されるのとまったく同じスクリプトです。

connect.facebook.net/en_US/all.js

したがって、SCRIPTこのファイルを指す別の要素をインデックス ページ (または他のページ) に配置することは、完全に無駄で冗長な HTTP 要求を作成することになります。個々のファイル、つまり「channel.html」が存在することの要点は、Facebook がクロスドメイン スクリプティング (XSS) の問題を回避する方法です。この概念は、Stack Overflow の記事「Why do we need to create a channel.html on our server to use Facebook JS SDK?よりもはるかに詳細に説明されており、よりよく理解できます。

(2.) 「channel.html」ファイル内で PHP スニペットを使用することにした場合、Facebook のドキュメントでは明確にされていない 2 つのオプションがあることに注意してください。

(a) 「channel.php」などの PHP 拡張子を付けてファイルを保存し、次のように JavaScript で変数を更新できます。 channelUrl : '//WWW.YOUR_DOMAIN.COM/channel.php'

(b) ファイル名「channel.html」を保持し、「.html」ファイルを PHP として処理できるようにサーバーを構成できます。

また、ファイルの URL が値に指定されている限り、ファイルは任意の名前で、Web サーバーのどこにでも保存できると想定していますchannelURL

于 2013-07-02T18:06:40.413 に答える
3

channel.phpの代わりに を作成し、channel.html次のコードをその中に入れることができます。

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

<script src="//connect.facebook.net/en_US/all.js"></script>
于 2013-05-30T16:27:50.820 に答える