ネットで解決策を探しましたが、どこにも行けないようです。
私のページ(php)は、ページに1つのURL(たとえば、www.mysite.com)をロードしています。音楽(アルバム)のいくつかの検索オプションを実行でき、トラックが表示されます。(ページを更新せずに)。情報はデータベースから取得されます。したがって、URLは同じままです。この検索プロセスでは、Facebookのメタタグ(説明、URL、タイトル)は同じままです。これは、ページをリロードすることはなく、コンテンツをdivにロードするだけだからです。
アルバムを「いいね」して、バックリンクできるようにしたいと思います。そこで、次のURLを使用してアルバムをロードする関数を作成しました。www.mysite.com?album = 12345このURLでポップアップを表示して、これを共有できます。したがって、このURLに移動すると、コンテンツはurlパラメーターに基づいて自動的にロードされます。
そしてこの場所(パラメータ?album = 12345のURLを見ることができます)にも「いいね」ボタンを表示したいと思います。(私はURLを生成したので、コードでこれを使用します:)
echo '<div style="overflow:visable" class="fb-like" data-href="http://mysite.com/?album='.$albumid.'" data-send="false" data-width="300" data-show-faces="false">?</div>';
これまでのところ機能します...(ボタンを有効にするために解析コードを追加した後)ただし、「いいね」ボタンはデフォルトのメタタグの説明やタイトルなどを取ります。このアルバムやアーティストでは特にないので、一意ではありません。
注:ヘッダーからmeta [property = og:url]を削除すると、?albumパラメーターを使用してボタンを正しいURLにバックリンクさせることができます。そうしないと、サイトmysite.comのデフォルトのルートに戻ります(これにより、lintツールで欠落しているメタでエラーが発生します)
私はこの同じ関数に次のようなものを追加しようとしました:
$("meta[property=og\\:url]").attr("content", "http://mysite.com/?album=<?php echo $albumid; ?>");
$("meta[property=og\\:title]").attr("content", "<?php echo $artistname; ?>");
$("meta[property=og\\:description]").attr("content", "<?php echo $albumname; ?>");
いいねボタンに正しい説明などを表示させるために、メタタグが変更されるようにこれを行いました。ただし、これは機能しません。Facebookがページをスクレイプすることを理解しています(私はlintツールなどを使用しました)が、javascriptを実行することはないため、メタタグはデフォルトのままになります(最初にページをロードするとき)
それぞれのHTMLページ(データベース内の数百万のアルバム...)を作成せずに、独自の説明(アルバム名など)を使用して、ユニークな「いいね」ボタンを作成するにはどうすればよいですか?
私はそれが理にかなっていることを願っています。
私はこれを理解できないようです、助けてください:-)
以下のコメントに基づいて、私は次の解決策を使用しました。
URL(params?alb_id = 12345)を開いたら、適切なfbメタタグを作成する必要があります。いいねボタンがその仕事をするのに十分です。