2

Facebook は既にメインのデスクトップ アプリで問題なく動作しています。同じセットアップ コードをモバイル サイトに追加したところ、JavaScript SDK から次のエラーが表示されました。

Received message of type object from https://s-static.ak.facebook.com, expected a string

次に、セットアップ コードをhttps://developers.facebook.com/docs/guides/mobile/web/から正確なレプリカに変更し、まったく同じメッセージを受け取りました。

このエラーは、ユーザー エージェントが Chrome デベロッパー ツールまたは iOS シミュレーターで iOS または Android の場合にのみ表示されます。デスクトップから実行している場合、このエラーは表示されません。

ここで何が起こっているのか分かりますか?

ありがとう :)

4

2 に答える 2

5

敬意を表して、ボコニックの答えは的を射ていないと思います。postMessage受信しているメッセージの直接の理由は、JavaScriptメソッドである可能性が最も高いです。によって返されるオブジェクトwindow.openまたはiframeの埋め込まれた Web サイトと Web サイトを通信するために使用されます。

window.parent.postMessage(message, targetOrigin);

この記事を見て、どのように機能するかを確認することをお勧めします。

MDN リファレンスによると、メソッドの最初の引数はpostMessage任意の型にすることができます。それでも、Gecko 6.0 (Firefox 6.0 / Thunderbird 6.0 / SeaMonkey 2.3) より前では、メッセージ パラメータは string でなければなりません

Chrome 28.0.1500.72(この回答を書いているときの最新バージョン)でメソッドをテストしましたが、オブジェクトを渡すと正常に動作しますが、コンソールに警告メッセージがスローされます。Facebook はリッチ データを文字列として渡すことに不快感を覚えるので、それをオブジェクトとして渡し、単に警告を気にしないと思います。または、回避策 (例: JSON.stringify) があるため、知らないバグがあります。

于 2013-07-29T17:38:43.823 に答える
2

同じエラーが発生しました。これは必ずしもあなたがそれを得る理由ではありません、しかし私は私のiphoneシミュレーターによって受け取られているパケットを見ることになりました、そしてここにs-statick.akからのエラーがあります:

[truncated] <span>Given URL is not allowed by the Application configuration.: One or more of the given URLs is not allowed by the App&#039;s settings.  It must match the Website URL or Canvas URL, or the domain must be a subdomain of one o

私の場合、エラーは、デバイスでIPアドレス(192.168.xxなど)を介してサイトにアクセスしており、ローカル開発では、ホストがローカルホストをFacebookアプリの構成にあるURLにルーティングしていることです。 ..そのため、IPはアプリ用に構成されていません。

Facebookは私にIPアドレスを使用させないので、唯一の選択肢はテスト展開またはDNSサーバーのようです。これがお役に立てば幸いです。

于 2012-08-08T19:44:39.653 に答える