1

ユーザーがスポーツの試合の予想に「いいね!」できるように、ウェブサイトで Facebook の「いいね」ボタンを使用しています。

いいねボタンには次のコードがあります。

<script>(function(d, s, id) {
    var js, fjs = d.getElementsByTagName(s)[0];
    if (d.getElementById(id)) return;
        js = d.createElement(s); js.id = id;
        js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=123456789";
        fjs.parentNode.insertBefore(js, fjs);
    }(document, 'script', 'facebook-jssdk'));
</script>
<fb:like href="http://www.sportannica.com/games/mlb/1880/predictions/113" show_faces="false" data-send="true" font="verdana" layout="button_count"></fb:like>

ドキュメントの先頭には、次のものがあります。

<meta property="og:title" content="Lance Newman's prediction for the Red Sox @ Yankees game on Friday, August 17" />
<meta property="og:description" content="Lance Newman predicted the Yankees to beat the Red Sox (6 to 4) on Friday, August 17 on Sportannica" />
<meta property="og:image" content="http://www.sportannica.com/img/team_icons/New York Yankees/1947.png" />
<meta property="og:site_name" content="Sportannica" />
<meta property="fb:app_id" content="123456789" />
<meta property="og:url" content='http://www.sportannica.com/games/mlb/1880/predictions/113' />
<meta property="og:restrictions:age" content="13+"/>
<meta property="og:determiner"  content="auto" /> 

誰かが、いいねボタンが新しいページの作成をトリガーする理由は、ヘッドに og:type メタ タグがあることが原因であると私に言いました。以前は、ドキュメントの頭にも次のものがありました

<meta property="og:type" content="sportannica:victory" />

このページは、アプリケーションのカスタム アクションにも使用するためです。ユーザーがゲームの予測を行うと、その予測がタイムラインに投稿されます。

私のサイトのユーザーがここにあるゲームを予測した場合、フォームが送信されると、次のコードが実行されます。

$queries = array(
            array("method" => "POST", "relative_url" => "/me/sportannica:predict?victory=http://www.sportannica.com/games/".$league."/".$game."/predictions_post/".$_SESSION['id']."")
        );

        try 
        {
            $postResponseA = $facebook->api('?batch='.json_encode($queries), 'POST');
        } catch (FacebookApiException $e) 
        {
//              echo 'AF error: '.$e.'';
        }

上記の例では、パラメータが「predictions」ではなく「predictions_post」になっていることに注意してください。

ドキュメントのオープン グラフ タグの内容は、URL のパラメータが「predictions_post」または「predictions」に設定されているかどうかによって異なります。

ドキュメントの先頭に、次の php コードがあります。

<meta property="og:title" content="
<?php
if($tab == "predictions_post")
{
    echo "".$winner_short." victory";    
} elseif($tab == "predictions")
{
    if($gram == 1)
    {
        echo "".$first_name." ".$last_name."'s prediction for the ".$away_team_short." @ ".$home_team_short." game on ".$game_date."";
    } else
    {
        echo "Predictions for ".$away_team_short." @ ".$home_team_short." on ".$game_date."";
    }
}
?>
" />
<meta property="og:description" content="
<?php 
if($tab == "predictions_post")
{
    echo "".$first_name." ".$last_name." predicted the ".$winner_short." to beat the ".$loser_short." (".$win_score." to ".$lose_score.") on ".$game_date." on Sportannica"; 
} elseif($tab == "predictions")
{
    if($gram == 1)
    {
        echo "".$first_name." ".$last_name." predicted the ".$winner_short." to beat the ".$loser_short." (".$win_score." to ".$lose_score.") on ".$game_date." on Sportannica"; 
    } else
    {
        echo "Predictions for ".$away_team_short." @ ".$home_team_short." ".$game_date."";
    }
}
?>
 " />
<?php
if($tab == "predictions_post")
{
?> 
<meta property="og:type" content="sportannica:victory" />
<?php
}
?>

しかし、URLのパラメータを「predictions」に設定し、正しいオープングラフタグが表示されていても、いいねボタンをクリックすると、新しいページが作成され、間違った og:title が表示されます。

アイデア/提案はありますか?

ありがとう、

ランス

4

1 に答える 1

0
<meta property="og:type" content="sportannica:victory" />

あなたの og:type は namespace:action 承認されたアクションですか? 勝利はFacebookによって承認されたアクションですか?

タイプは「website」にするか、オープン グラフ アクションの投稿の場合は key:value / namespace:action にする必要があり、アクションを承認する必要があります。そうしないと、エラーがスローされるか無視されます。


デバッガーでバグのある URL を実行してみてくださいhttps://developers.facebook.com/tools/debug

于 2012-09-03T18:01:43.050 に答える