7

g+ 共有ボタンのあるページを作成していますが、共有するコンテンツの説明を動的に変更したいと考えていました。共有ボタンをカスタマイズするには、Open Graph プロトコルでスニペットを使用しています。

私が試した解決策は次のとおりでしたが、正しく機能しませんでした。

<meta property="og:title" content="O Fabuloso Gerador De Lero Lero v3" />
<meta property="og:image" content="images/robot.png" />
<meta property="og:description" content="..." />
$('meta[property="og:description"]').attr('content',text);

var shareButtons = $('div:first','section.share-buttons');
shareButtons.html('');
shareButtons
    .prepend('<a href="https://twitter.com/share" class="twitter-share-button" data-text="' + text.trunc(120,true) + '" data-url="http://goo.gl/1KHFM" data-lang="pt">Tweetar</a>')
    .prepend('<div class="g-plus" data-action="share" data-href="http://lerolero.miguelborges.com/t=' + new Date().getTime() + '" data-annotation="bubble"></div>');

try {
    window.twttr.widgets.load();
    window.gapi.plus.go();
} catch(e) {}

ただし、シェアボタンの記載内容は常にイニシャルです。

誰でもそれを機能させる方法を知っていますか?

編集:

ボタン twitte で同じ問題が発生しましたが、これを解決することができました。

        shareButtons
            .prepend('<a href="https://twitter.com/share" class="twitter-share-button" data-text="' + text.trunc(120,true) + '" data-url="http://goo.gl/1KHFM" data-lang="pt">Tweetar</a>');

        window.twttr.widgets.load();
4

2 に答える 2

2

ページのスニペットは、ページのサーバー側フェッチによって生成されます。ページ フェッチャーは JavaScript を実行しません。これが、その要素に加えた変更が共有に反映されない理由です。

この問題は、get パラメータを使用してターゲットを指定することで回避できます。

  1. 説明を GET パラメータとして受け入れるようにページを構成します。たとえば、http://exmaple.com?desc=foobarを指定すると、Open Graph タグは次のようになります。<meta property="og:description" content="foobar" />
  2. 共有リンク、共有ボタン、または +1 ボタンをレンダリングするときは、GET パラメータを使用して指定された目的の説明でページをターゲットにします。共有ボタンの場合、マークアップは次のようになります。<div class="g-plus" data-action="share" data-href="http://example.com/?desc=foobar"></div>

ただし、これはカウントに影響します。+1 ボタンでこの手法を使用すると、各説明が別のページと見なされ、カウントが個別に累積されます。

于 2012-08-10T23:18:26.013 に答える
1

Facebook が説明やその他のメタの情報をキャッシュしていることは知っています。このリンクによると、Google +もそうです。無期限にキャッシュされているようです...これにより、コンテンツを変更する頻度によっては、状況がほぼ不可能になります。それか、数日待って、状況が変わるかどうかを確認してください。ジェニーも正しいことに注意したいのですが、それを通過した後でも、望ましい結果が得られない可能性が高い.

于 2012-08-10T23:46:31.250 に答える