Facebook オブジェクト デバッガーを使用して Web サイトを検証しようとしているのですが、次のエラーが発生します。
URL のオブジェクト 'http://www.example.com/latest' タイプ 'smallteaser:teaser' の ' は、指定されたアプリケーション ID '597566643589666' ではドメイン 'www.example.com' が許可されていないため無効です。
このエラーは、example.com ドメインに Facebook アプリへの特定のアクセスを許可していないため、完全に当然のことです。しかし、本当にそうしなければならないのでしょうか?
私が実現したいのは、カスタムドメインを使用した場合のTumblrの動作に似ています。たとえば、ウェブサイトダビッドログ: 次のメタタグがあります:
<meta property="fb:app_id" content="48119224995" />
--> This is the Tumblr app ID
<meta property="og:url" content="http://www.davidslog.com/?og=1" />
--> This is a custom domain which points to a Tumblr blog
<meta property="og:type" content="tumblr-feed:tumblelog" />
--> This is a custom Tumblr object type (in namespace tumblr-feed)
これを例えばドメインと比較すると翻訳:これには次のメタデータが含まれます。
<meta property="fb:app_id" content="48119224995">
--> This is the same Tumblr app ID
<meta property="og:url" content="http://theartofnotwriting.tumblr.com/?og=1">
--> This is a different domain
<meta property="og:type" content="tumblr-feed:tumblelog">
同じ Tumblr アプリに複数の URL があり、すべてが正しく検証されていることがはっきりとわかります。
では、なぜこの Tumblr ページは正しく検証されるのに、私のページは検証されないのでしょうか? Facebook アプリを複数のドメインで使用できるように設定するにはどうすればよいでしょうか?
ベストアンサー1
私も同じ問題に遭遇しました。Tumblr がこの特別な扱いを受けるには、Facebook と何らかのパートナーシップを結んでいるに違いない (IP ホワイトリスト? 特別な API?) と思い、Facebook の元パートナーシップ担当者に問い合わせてみました。
この件について Facebook のプラットフォーム エンジニアと話をしましたが、私の考えは完全に間違っていました。何も特別なことは起きていません。
Tumblr で実行されているすべてのドメインが単一の app_id で正常に検証される理由は、Facebook デバッグ ツールが og_tag の構造の有効性のみをチェックするからです (少なくとも app_id に関しては)。app_id が特定のドメインに適切に関連付けられているかどうかは検証されません。
これをテストするには、2 つの異なるドメインに app_id を含むテスト ページを作成します。デバッグ ツールでは、両方とも正常に検証されます。
実際の Facebook API アクセスに関しては、Tumblr はすべてを自社のドメインで実行します。Tumblr で Facebook ボタンなどを使用する場合、多くの場合、サードパーティのプロキシ ツール (ShareThis など) 経由か、非 API ボタン埋め込みを使用します。Tumblr で実行されているカスタム ドメインで Facebook API または app_id 関連のボタンを使用しているものは 1 つも見つかりませんでした。もし見つかったら、ぜひ見てみたいです。
これはあなたが望んでいる答えではありません (または私が望んでいる答えではありません)。しかし、それが起こっていることです。Tumblr の app_id はすべてのドメインに表示されますが、実際に機能するのは「.tumblr.com」のみです。Facebook デバッグ ツールは実際には app_id を検証しません。