2

BackboneJSを使用して作成されたWebサイトがあり、ユーザーがFacebookステータスからサイトのURLを貼り付けると、タイトルや画像などが表示されるようにFacebookOGを実装しようとしています。

私の問題は、Apacheがすべてのトラフィックをインデックスページにリダイレクトし、BBルーターが正しく機能できるようにするため、FBスクレーパーが常にインデックスページにリダイレクトされることです。インデックスページ用のogタイトル、og画像などのみが表示され、他のページには表示されません。

Facebookのスクレーパー/クローラーはBBルーターを通過していないようです。静的なindex.htmlページをレンダリングするだけです。

誰かがこれの回避策/解決策を持っていますか?

4

3 に答える 3

1

Facebook Lint ツールを使用して OG オブジェクトをデバッグできます。これはドメイン リンクの 1 つにあります。

http://developers.facebook.com/tools/debug/og/object?q=http%3A%2F%2Fembedible.com%2Fvideo%2FamQ1Njg4QGdtYWlsLmNvbTI5OA%3D%3D

OG オブジェクトの URL は実際にはhttp://embedible.com/video/amQ1Njg4QGdtYWlsLmNvbTI5OA==ですが、http ://embedible.com/ を示す og:url に問題があることに注意してください

lint デバッガーの [リダイレクト パス]セクションで確認できます。破棄された実際の URL は次のとおりです。http://embedible.com/

私の Web サイトでは、URL に基づいて異なるデータを使用して同じ html テンプレートをレンダリングします。したがって、クライアント上の実際のビュー用とサーバー上のメタタグを満たす2つのテンプレートエンジンがあります

結論: サーバーのメタ タグを置き換える必要があります。

于 2013-03-12T00:07:22.843 に答える
1

Web サイトの HTML 自体 (バックボーンではなく) で Facebook Open Graph タグを構成することをお勧めします。FB には、小さなプレビューを生成するために使用する特別なタグがあります。ここにドキュメントがあります。

Facebook のスクレイパー/クローラーがバックボーン ルートを通過していないのは、おそらく JavaScript を実行していないためです。

JS を実行しないため、ページが index.html にヒットしたときにリクエスト uri を読み取るようにスクリプトを設定し、適切な OG タグを含むページにリダイレクトできます。

于 2013-02-28T17:09:52.840 に答える
0

CamelBlues、これは私が探している解決策ではないと思います。まず、私のサイトでは既に OG タグを使用しています。第二に、クローラーが JS の読み方を知る必要はないと思いますが、URI に応じて JS がレンダリングするページ...これが Backbone.js ルーターの仕組みです。と、

「JS を実行しないため、ページが index.html にヒットしたときにリクエスト uri を読み取るスクリプトを設定し、適切な OG タグを含むページにリダイレクトできます。」

これは BB ルーターが既に行っていることであり、私のページには適切な OG タグがあります。:(

于 2013-03-03T03:39:39.517 に答える