4

タイムラインでアクションを公開するために、Meteor アプリケーションを Facebook Open Graph と統合しようとしています。

Facebook API は、API によって読み取られる HTML ヘッドでオブジェクト固有のメタ タグを定義することによって機能します。例えば:

<head prefix="og: http://ogp.me/ns# [YOUR_APP_NAMESPACE]: 
                     http://ogp.me/ns/apps/[YOUR_APP_NAMESPACE]#">
    <title>OG Tutorial App</title>
    <meta property="fb:app_id" content="[YOUR_APP_ID]" /> 
    <meta property="og:type" content="[YOUR_APP_NAMESPACE]:recipe" /> 
    <meta property="og:title" content="Stuffed Cookies" /> 
    <meta property="og:image" content="http://fbwerks.com:8000/zhen/cookie.jpg" /> 
    <meta property="og:description" content="The Turducken of Cookies" /> 
    <meta property="og:url" content="http://fbwerks.com:8000/zhen/cookie.html">
</head>

ただし、URL を検査するときに Facebook API が確認するものは、次のようなものです。

<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="/ed99236548322b46a7562b49cd6ee0e0f059e506.css">
  <script type="text/javascript" src="/c16ff21884b1f831d91ebf271236ef78b03b552e.js"></script>
  <title>Made with Meteor!</title>
</head>
<body>
</body>
</html>

URL によって変わる可能性があるこのメタ タグを Meteor アプリケーションに統合する最良の方法は何ですか?

4

3 に答える 3

5

同じ問題が発生しました。

これに対処するには、次の 2 つの方法があります。

  • "spiderable" パッケージ (現在は "devel" ブランチにあります) への最近の追加により、クライアント コードの "head" タグを変更し(og:title などを追加)、それを "魔法のように" Facebook に提供することができます。サーバー

(注:クライアントの起動時に "autopublish" が "true" に設定されているフラグに依存している間、"spiderable" はページのレンダリングを停止するため、おそらくこのソリューションでは autopublish パッケージを使用する必要はありません)

  • より軽量なソリューションは、Meteor の「headly」パッケージです。

https://github.com/ayal/headly

インストール後、次のように使用します。

Meteor.headly.config({tagsForRequest: function(req) {
  ... do something dynamic here, i.e get title from db based on url param ...
  return '<meta property="og:title" content="<DYNAMIC TITLE>" />';
}});
于 2012-10-19T09:19:28.577 に答える
1

Spiderableパッケージは行くべき道です...

ルーターで次のようにします...(これはcoffee-sciprtです)

#Spiderable stuff to set meta tags for crawl
$("meta[property='fb:app_id']").attr "content", "YOUR_APP_ID"
$("meta[property='og:type']").attr "content", "YOUR_APP:OPEN_GRAPH_CUSTOM_EVENT"
$("meta[property='og:url']").attr "content", "https://apps.facebook.com/YOURAPP"+ @canonicalPath
$("meta[property='og:title']").attr "content", "some title:
$("meta[property='og:description']").attr "content", "some description"
$("meta[property='og:image']").attr "content", "thumb image url"

このページの Facebook クロールがデバッグ ツールで機能しているかどうかをテストできます...このページの URL を入力して、エラーなどを確認するだけです..

https://developers.facebook.com/tools/debug

于 2013-09-06T15:44:10.083 に答える
0

する必要がありmeteor add spiderableます。

meteor 0.4.2 の時点で、spiderableパッケージが含まれているので<meta>、クライアントの HTML に関連する要素を含めるだけです<head>

<head>
  <meta property="og:type" content="website" />
  <title>HTML head test</title>
</head>
于 2012-10-08T12:02:15.767 に答える