2

多くのウェブサイトで実装されるjsでウィジェットを作成しています。
Facebookは私にそれらを「私のドメイン」として与えることを要求します。
問題は、ウィジェットが多くのウェブサイトから使用されることであり、私はそれらのドメインのすべてをmanuly Facebookにリストアップするつもりはないということです。
jsのみを使用して、異なるWebサイトからアプリケーションを動作させるにはどうすればよいですか? (ウィジェット用)Facebook別のドメインのコードを使用する

ありがとうございます。

答えて

0

私はajaxを同様の方法で使用しています。私はajaxをPHPページに変換し、すべてのリクエストにphp sdkを使用します。クロスドメインはちょうど良い。

例:Facebookに最新のアルバムが更新され、Facebookにアルバムにリンクされたカバー写真が表示されます。

<div id="pagealbums"></div> 
<script> 
function showAlbums(){ 
if (window.XMLHttpRequest) 
    {// code for IE7+, Firefox, Chrome, Opera, Safari 
    xmlhttpA=new XMLHttpRequest(); 
    } 
else 
    {// code for IE6, IE5 
    xmlhttpA=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
xmlhttpA.onreadystatechange=function() 
    { 
    if (xmlhttpA.readyState==4 && xmlhttpA.status==200) 
    { 
    document.getElementById("pagealbums").innerHTML=xmlhttpA.responseText; 
    } 
    }; 
    xmlhttpA.open("GET","http://anotherfeed.com/feed.albums.php?pageid=facebook&type=list",true); 
    xmlhttpA.send(); 
} 
showAlbums(); 
</script> 
+1

しかし、私は自分の秘密鍵を持っていると信じられない人にこの「ウィジェット」を配布します...プラス、 、ここではajaxにはクライアント用のPHPファイルが必要です(またはCORSを使用することを意図しています)。 – funerr

+0

この方法を使用すると、誰が自分のプラグインを使用できるかを制御でき、すべての認証はサーバー側のFacebookで行われ、重要な情報や設定を公開する危険性はありません。この方法では、ユーザーが独自のCSSを使用して送信したコンテンツのスタイルを設定することもできます。すべての特典、ジャークはありません。 –

+0

解決策が見つからず、PHPを使用することに決めた場合は、クロスドメイン通信用のテストページを設定する際に役立つことをお知らせください。私はまた、必要に応じて、あなたがfacebookのためにphp-sdkをセットアップするのを助けることができます。 –

2

あなたのウィジェットは、おそらく自分のドメインでホストされているiFrameにFBコードをロードする必要があります。次に、クロスドメイン/クロスiframe JSハックを使用して、システムがそれを使用するページと通信できるようにする必要があります。 (ここにはそのことを行う良いリソースがあります... http://softwareas.com/cross-domain-communication-with-iframes)これは間違いなく痛みですが、あなたがやろうとしていることを私が考えることができる唯一の方法です。これを簡単にするために、現時点でいくつかの優れたJSライブラリがあるかもしれませんが、私はすぐにそれを認識していません。

もう1つの方法は、それぞれが別のドメインに属するFacebookアプリケーションをたくさん作成することです。これはメンテナンスの面でも苦労しますが、かなり書く必要があるJSコードを単純化します。このアプローチには堅牢性の面でいくつかの利点があります。ウィジェットを使用しているサイトの1つが不正になり、何らかの理由でアプリケーションが禁止された場合、他のクライアントサイトには影響がありません。

Facebookは「クローンアプリケーション」ツールを提供していましたが、今は見つけられませんでした。

+0

iframeはjavascript sdkを使用している場合に行くことができる唯一の方法です。 –

+0

これはこれを行う最善の方法ですか?どのように 'sharethis'ツールを使うと、ユーザーはjsを追加してすべての共有メソッドを開くことができますか? iframeも使用していますか?さらに、これらのiframe間で何を渡すのですか?アクセストークン?クッキーの名前/値? – funerr

+0

FacebookのJS SDKはiframeを大量に使います。サイトがロードするFacebookスクリプトは、Facebook.comを指すiframeを作成します。フレーム間を渡す必要があるのは、アプリケーションの性質によって異なります。要点は、アプリケーションに関連付けられたドメインからFacebook認証のものを起動する必要があることです。 –

関連する問題