によってFBからデータを取得
ifrm.getElementById('textBoxId').value = 'value-fetched-from-facebook';
を使用し、あなたが望むものによるセキュリティへのブラウザによってブロックされます理由(同じ起点ポリシー)。
あなたは何ができる:
はiframe内にフォームをリロードし、それをあなたがFacebookのキャンバスアプリでないようにJS SDK、あなたも(IFRAMEにデータを投稿することができますから取得したデータを渡します)。
iframeの位置は変更できますが、iframeをリロードしないハッシュ部分(フラグメント)のみを変更する必要があります。
iframeでは、場所の変更を認識し、フラグメントからデータを抽出します。
問題は、この方法ではブラウザの履歴が間違っている可能性があることです。
クロスドメイン通信の別の解決策を見つけるには、おそらくeasyXDM?
編集
ここで最初のオプションの2つの実装は、次のとおりIFRAME
<form method="POST" action="USER_FORM_URL" target="userform" id="postForm">
<input type="hidden" name="fbResponse" id="fbResponseInput" />
</form>
<iframe name="userform"></iframe>
にPOSTを使用して)
<iframe id="userform"></iframe>
<script type="text/javascript">
// load and init FB JS SDK
FB.api("me", function(response) {
document.getElementById("userform").src = USER_FORM_URL + "?name=" + response.name;
});
</script>
2 GET使用
1)
iframe自体で、(GETまたはPOSTのいずれかの)データを取得し、それに応じてユーザーフォームをレンダリングします。
<script type="text/javascript">
// load and init FB JS SDK
FB.api("me", function(response) {
document.getElementById("fbResponseInput").value = JSON.stringify(response);
document.getElementById("postForm").submit();
});
</script>
ちょうど私がこの権利を得たかどうかをチェックしますiframeのドメインdXからも配信されていますが、これまでのところ正しいですか?もしそうなら、どこからapi呼び出しをしたいのですか? pA、pB、またはその両方?また、アプリの設定では、アプリドメインはdXに設定されていますか? –
ネガティブ。 pBはiframeのドメインdZから提供されます。私はpBのフォーム(ユーザーの詳細)を更新するために、pAのFB Javascript SDKを介してAPI呼び出しを行いたいと思います。個人的には、可能なら大したセキュリティ問題のように聞こえるとは思わない。しかし、私はちょうどこれをもう一度チェックしたいと思っていました。 – super9
また、少なくとも、他のドメイン/サイトへのデータ転送やFacebookのAPIから取得した詳細情報に基づいたフォームデータのため、実行しようとしていることがプラットフォームポリシーに違反していないことを再度確認する必要があります。 –