2

私はjsでウィジェットを作成していますが、これは多くのWebサイトに実装されます
。Facebookでは、私が検証されたことを知らせるために、「マイドメイン」を指定する必要があります。
問題は、ウィジェットが多くのWebサイトから使用されることであり、これらのドメインのすべてをFacebookに手動でリストするつもりはありません。
jsのみを使用して、これらのさまざまなWebサイトからアプリを機能させるにはどうすればよいですか?(ウィジェット用)

前もって感謝します。

4

2 に答える 2

2

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

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

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

于 2012-04-23T20:12:33.483 に答える
0

私は似たようなものにajaxを使用しています。私はphpページにajaxし、すべてのリクエストに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>
于 2012-04-23T21:10:06.847 に答える