2011-07-16 13 views
0

Facebookのコメントを使用するiFrameアプリケーションを構築しています。ユーザーがコメントを残すとき、デフォルトのアクションは、このコメントが壁に掲示されることです。壁のポストはあなたが、説明画像を含めることができ、そしてそれはhttp://example.com apps.facebook上に述べているページのタイトル(ようにリンクを設定する必要があります壁紙のタイトル、画像、説明をFacebookのコメントから作成する方法

UserX commented on example.com 
# the comment text goes here 

http://example.com 
apps.facebook.com 

の線に沿って何かです。 com)、しかし私はこれが動作するように運がない。

私はそれは(限り、彼らは適切な「OG」のタグが含まれていたように)私のメタタグからの情報をつかむだろうと思ったが、それは動作しません。また、タイトル、URL、画像などの値を、通常の壁紙の場合と同じ方法で定義することもできません。

誰でもこの作業をどのようにするか考えていますか?

編集:

ここには現在使用しているメタタグがあります。デバッグ へ

<meta property="og:title" content="USERNAME'S PAGE" /> 
<meta property="og:type" content="website" /> 
<meta property="og:url" content="http://example.com"/> 
<meta property="og:image" content="http://example.com/images/wall-post.png" /> 
<meta property="og:description" content="Some description goes here." /> 

答えて

1

OK、私はこれを考え出しました。

私のiFrameアプリケーションは、アプリケーションにアクセスする前にFacebookの認証を必要とする(私はすべてのFacebookアプリがそう信じているとして)。これは、facebookクローラがホームページをクロールしてog:metaタグを取得できなかったことを意味します。

これを解決するには、最初にfacebookクローラの外観を把握しなければなりませんでした。私はすべてのリクエストに対してHTTP_USER_AGENTを記録し、その後FacebookのURL Linter(http://developers.facebook.com/tools/lint/)を使って自分のサイトにpingをかけました。

Facebookのクローラーは「facebookexternalhit/1.1(+のhttp://www.facebook.com/externalhit_uatext.php)」として自身を識別し、私はちょうどに少し条件ロジックを追加することができたことだったしたら

クローラが認証をバイパスして自分のサイトにアクセスできるようにします。私はこれが他人を助けることを望む。

2

使用URLリンターhttp://developers.facebook.com/tools/lint/

すべてのメタタグが正しく、あなたには、いくつかの変更を加えた場合、それはFacebookのために更新するために、ある程度の時間がかかり、ここではサンプルです、これはAであることを確認してください作業バージョン:

<!doctype html> 
<html xmlns:og="http://ogp.me/ns#" 
     xmlns:fb="https://www.facebook.com/2008/fbml" lang="en"> 
<head> 
    <meta charset="utf-8"> 
    <title>Facebook Comment Box Sample</title> 
    <meta property="og:title" content="YOUR-POST-TITLE"/> 
    <meta property="og:type" content="website"/> 
    <meta property="og:url" content="http://YOUR-SITE-URL"/> 
    <meta property="og:image" content="http://YOUR-IMAGE-URL"/> 
    <meta property="og:site_name" content="YOUR-SITE-TITLE"/> 
    <meta property="og:description" content="YOUR-DESCRIPTION"/> 
    <meta property="fb:admins" content="YOUR-USER-ID"/> 
</head> 
<body> 
<h1>Facebook Comment Box:</h1> 
<div id="fb-root"></div><script src="http://connect.facebook.net/en_US/all.js#xfbml=1"></script> 
<fb:comments href="http://YOUR-SITE-URL" num_posts="10" width="500"></fb:comments> 
</body> 
</html> 
+0

感謝を。私は使用しているメタタグを表示するために私の投稿を編集しました。私は数時間前にそれらを更新し、彼らはまだ拾われていません。 –

-1

まず私は、私はちょうどこの中で私のコードを入れて、私はすべての私のメタプロパティが設定されていたことを確認しました:URLリンターに私を指しているため

if (strpos($_SERVER['HTTP_USER_AGENT'],"externalhit_uatext")<5) 
    { 
    } 
+1

この回答には重要な文脈がないと思います。私は、Facebookのクローラのユーザーエージェントが質問に答える役割を果たしているかもしれないが、それはどういうふうに見えるのだろうか? –

関連する問題