2012-04-06 7 views
5

Facebookのドキュメントでは、JavaScript SDKにチャンネルファイルを使用することをおすすめします。私の質問は、このファイルを作成する方法についての細かいところです。それは私が作成し、ラインとHTMLファイルを作成する必要があることは明らかです<script src="//connect.facebook.net/en_US/all.js"></script>Facebook SDKの "channel.html"ファイルを作成する方法

しかし、Facebookはこのファイルをできるだけ長くキャッシュし、それを行うPHPスクリプトを提供することをお勧めします。私の質問は、このスクリプトをどこに置くべきですか?同じchannel.htmlファイルで、私は自分のウェブサイトのインストールのルート(自分自身でホストされているWordpressのブログ)に配置します。

ありがとうございます!

P.

答えて

12

チャンネルファイルは、すでにあなたはどこにでもキャッシュコードを置くことができますし、おそらくそれがインデックスファイルに入れて

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

を述べてきたようにコードのみを持っていることになっています。

+0

ありがとうございます。それが私が探していたものです。 – Parneix

+0

私はそれを私のWordpressブログの ' 'セクションに入れました。できます。 – Parneix

3

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

<?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> 
5

私はちょうど私がこの特定のQ & Aで見過ごされてきたと思うポイントのカップルを強調したいと思います:

(1)私の意見では、私は、「チャネルことを言うと思います。 html "のコードスニペットは、別のファイルにする必要があります。スニペットは、harryの推奨するようにインデックスファイルに入れることはできません(これはホームページや他の一般的なコンテンツページを意味すると仮定しています)。ウェブサイト)。

あなたにSCRIPT要素のsrc属性ポイントというURLを見れば、それはJS-SDKコードで非同期に呼び出された、まったく同じスクリプトです:別のSCRIPTを配置し、そのため

connect.facebook.net/en_US/all.js

このファイルをインデックスページ(または他のページ)に指し示す要素は、完全に無駄で冗長なHTTPリクエストを作成するだけです。個々のファイル(「channel.html」)が​​存在するという点は、Facebookがクロスドメインスクリプト(XSS)の問題を回避する方法です。この概念は、あなたの内のPHPスニペットを使用することを決定しない場合、ことは注目に値するWhy do we need to create a channel.html on our server to use Facebook JS SDK?

(2)、私はスタックオーバーフローの記事で持っているよりもはるかに詳細に、より良い理解した上で説明されています"channel.html"ファイルには、Facebookのドキュメントで実際にはっきりしていない2つのオプションがあります:

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

(b)は、ファイル名「channel.html」を維持し、に「.htmlの」ファイルを許可するようにサーバーを設定することができますPHPとして処理されます。

URLがchannelURLの値で提供されている限り、ファイルは何でも呼び出せて、Webサーバーのどこにでも格納できると仮定しています。

関連する問題