web-dev-qa-db-ja.com

JQueryを使用したFacebookメタタグのコンテンツ属性の変更

Facebookメタタグのコンテンツ属性を置き換えるためにJQueryを使用する方法を知りたいです。

StackOverflowを検索したところ、次の例が見つかりました。

$("meta[property=og:title]").attr("content", title);
$("meta[property=og:url]").attr("content", url);

私のコードには、次のメタタグがあります。

<meta property="og:title" content="some content"/>
<meta property="og:url" content="some content"/>
<meta property="og:site_name" content="some content"/>

「title」変数と「url」変数の内容を変更する必要がある関数を実行しても、変更は行われません。 'content'の同じ値は同じままです。

可能であれば、JQueryを使用してFacebookのメタタグの値を変更する方法を知りたいです。

11
Idan Shechter

JQueryを使用してメタタグを変更することは間違いなく可能ですが、メタタグはFBスクレイパーによってプルされるため、それで目的が達成されるとは思いません。 FBスクレイパーが出て、ページをスクレイピングしてメタタグを読み取ります。

メタタグの編集

ページのタグを更新することで、ページの属性を更新できます。 og:titleとog:typeは、最初は編集可能であることに注意してください。ページが50のいいねを受け取った後、タイトルは修正され、ページが10,000のいいねを受け取った後、タイプは修正されます。これらのプロパティは、ページをすでに気に入っているユーザーを驚かせないように修正されています。これらの制限に達した後でタイトルまたはタイプタグを変更しても何も起こりません。ページは元のタイトルとタイプを保持します。

変更をFacebookに反映するには、ページを強制的にスクレイピングする必要があります。ページの管理者が「いいね」ボタンをクリックしたとき、またはURLがFacebook URL Linterに入力されたときに、ページがスクレイピングされます。リンターをcURLすることで、プログラムでページを強制的にスクレイピングすることができます。例えば ​​...

https://developers.facebook.com/docs/opengraph/

15
Jeff Sherlock

これは私にとってそれがどのように機能したかです:

$('meta[name=og\\:url]').attr('content', newVideoUrl);

ダブルバックスラッシュに注意してください。バックスラッシュがないと、Jqueryはエラーで失敗します。

24
Jinn

Facebookスクレイパーしません JavaScriptを実行します。

そのため、Javascriptを使用してメタタグを変更し、さまざまな共有コンテンツを表示することはできません。

必要に応じて、サーバーサイドコードを使用してHTMLソースに書き出す必要があります。

10
elMarquis