ユーザーがスポーツの試合の予想に「いいね!」できるように、ウェブサイトで 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 が表示されます。
アイデア/提案はありますか?
ありがとう、
ランス