Facebook共有ボタンとカスタムテキスト[終了]


93

壁やニュースフィードにカスタムテキストを投稿するFacebook共有ボタンを作成する方法はありますか?


回答:


94

次のようなものを使用します[1行で使用]:

<a title="send to Facebook" 
  href="http://www.facebook.com/sharer.php?s=100&p[title]=YOUR_TITLE&p[summary]=YOUR_SUMMARY&p[url]=YOUR_URL&p[images][0]=YOUR_IMAGE_TO_SHARE_OBJECT"
  target="_blank">
  <span>
    <img width="14" height="14" src="'icons/fb.gif" alt="Facebook" /> Facebook 
  </span>
</a>

4
このリンクをポップアップまたはモーダルウィンドウで開く方法を知っていますか?機能するメソッドが見つからないだけで、一般的なポップアップウィンドウコードを使用するほど簡単ではありません...
tvgemert

1
一番上の答えよりも効果的です。
Mateng 2012

29
@tvgemert:試し<a class="facebook" target="_blank" onclick="return !window.open(this.href, 'Facebook', 'width=640,height=300')" href="http://www.facebook.com/sharer/sharer.php?u=YOUR_URL">Facebook</a>などを
Mateng

パーフェクト、これはハッシュバングURLでも機能します!
dvtoever 2012

73
これはもう機能しません。
チャックルバット

30

facebook共有にカスタムパラメータを与えるには、リンクだけを与えるほうが良いです。facebookは、共有しているページからタイトル+説明+画像を自動的に取得します。Facebook APIを「助ける」ためにそれらを見つけるには、共有しているページのヘッダーに次のものを置くことができます。

<meta property="og:title" content="title" />
<meta property="og:description" content="description" />
<meta property="og:image" content="thumbnail_image" />

ここをチェック

ページがあなたの管理下にない場合は、AllisonCが上記で共有したものを使用してください。

ポップアップmodalviewタイプの動作:

独自のボタン/リンク/テキストを使用すると、次のようにモーダルビュータイプのポップアップを使用できます。

<script type= 'text/javascript'>
$('#twitterbtn-link,#facebookbtn-link').click(function(event) {
var width  = 575,
    height = 400,
    left   = ($(window).width()  - width)  / 2,
    top    = ($(window).height() - height) / 2,
    url    = this.href,
    opts   = 'status=1' +
             ',width='  + width  +
             ',height=' + height +
             ',top='    + top    +
             ',left='   + left;

window.open(url, 'twitter', opts);

return false;
});
</script>

ここで、twitterbtn-linkとfacebookbtn-linkはどちらもアンカーのIDです。


URLが同じである場合、メタプロパティのデータはFacebookによってキャッシュされていますか?または、たとえば、すべてのページビューで個々のPOSTデータを入力できますか?
Mateng 2012

私はあなたが何を意味するのか理解できませんでした。
ShayanK 2012

私はこれに出くわしました。私のホームページには、私のビジネスに関連付けられているFacebookページを「いいね/共有」するように設定された「いいね/共有」コードがあります。ページにあるFacebookのメタタグを無視しているようです。誰かがこの問題に遭遇しましたか?
Chris Hawkins、

1
この方法はもう機能していないようです。カスタマイズされたFacebook共有ボタン(独自のテキスト、タイトル、画像を使用)を実現する唯一の方法は、Facebook SDKを使用することだと思います。
Ryan Coolwebs 2015

if( window.open(.....) ) event.preventDefault();単に「return false;˙」ではなく、それを最新の状態にするための優れたソリューションです。-その方法では、ウィンドウが開かれたときにデフォルトの動作(リンクが開く)のみが防止されます-開かれていない場合のフォールバックが提供されます...
jave.web

12

IJasが提供するリンクから派生したこの関数を使用する

function openFbPopUp() {
    var fburl = '';
    var fbimgurl = 'http://';
    var fbtitle = 'Your title';
    var fbsummary = "your description";
    var sharerURL = "http://www.facebook.com/sharer/sharer.php?s=100&p[url]=" + encodeURI(fburl) + "&p[images][0]=" + encodeURI(fbimgurl) + "&p[title]=" + encodeURI(fbtitle) + "&p[summary]=" + encodeURI(fbsummary);
    window.open(
      sharerURL,
      'facebook-share-dialog', 
      'width=626,height=436'); 
    return  false;
}

または、より制御されたコールバック関数にFB JavaScript SDKを使用している場合は、最新のFB.ui関数を使用することもできます。

参照:FB.ui

    function openFbPopUp() {
        FB.ui(
          {
            method: 'feed',
            name: 'Facebook Dialogs',
            link: 'https://developers.facebook.com/docs/dialogs/',
            picture: 'http://fbrell.com/f8.jpg',
            caption: 'Reference Documentation',
            description: 'Dialogs provide a simple, consistent interface for applications to interface with users.'
          },
          function(response) {
            if (response && response.post_id) {
              alert('Post was published.');
            } else {
              alert('Post was not published.');
            }
          }
        );
    }

このFB.uiはおそらく最も信頼できるアプローチです。さらに、このスクリプトをページの下部に残りのJavaScriptとともにロードし、jquery変数/セレクターを値としてロードできます。これを投稿してくれてありがとう。
クレウィス

@blackhawk ...しかしFB.uiにはapp_idも必要です-これは常にオプションではありません... :)
jave.web

@Bravesh BリンクしたFB.uiに関連するドキュメントを検索しました。画像、キャプション、説明など、FB.uiに渡すパラメーターが見つかりませんでした。どこで見つけましたか?
フェレックス、2017年

@Ferexここでパラメータを見つけることができますdeveloper.facebook.com/docs/sharing/reference/feed-dialog
Bhavesh B

1
2017年4月18日以降、次のパラメーターはGraph APIバージョン2.9以降ではサポートされなくなりました。バージョン2.8と低くするために、パラメータが7月17日、2017年まで作業を続けます
ゴランJakovljevic

9

いくつかのオプションがあります。

  1. 標準のFB共有ボタンを使用し、ページ上のOpen Graph APIとメタタグを介してテキストを設定します。
  2. 共有の代わりに、FB.uiのstream.publishメソッドを使用します。これにより、実行時にURL、タイトル、キャプション、説明、サムネイルを制御できます。
  3. または、適切なパラメータを指定してhttp://www.facebook.com/sharer.phpを使用します。

2
後者について詳しく説明できますか?これらのパラメーターは何ですか?
Jeroen Vannevel 2016

6

Facebookが提供する非同期JavaScript SDKを使用し、そのパラメーター値を設定することで、Facebook共有ダイアログボックスをカスタマイズできます。

次のコードを見てください。

<script type="text/javascript">
  $(document).ready(function(){
    $('#share_button').click(function(e){
      e.preventDefault();
      FB.ui(
        {
          method: 'feed',
          name: 'This is the content of the "name" field.',
          link: 'URL which you would like to share ',
          picture: ‘URL of the image which is going to appear as thumbnail image in share dialogbox’,
          caption: 'Caption like which appear as title of the dialog box',
          description: 'Small description of the post',
          message: ''
        }
      );
    });
  });
</script>

以下のコードをコピーして貼り付ける前に、まずSDKを初期化し、jQueryライブラリを設定する必要があります。情報の設定方法を段階的に知るには、こちらクリックしてください。


3

これは現在のソリューション(2014年12月)であり、非常にうまく機能します。特徴

  • ポップアップウィンドウを開く
  • 自己完結型スニペット、他に何も必要ありません
  • JSの有無にかかわらず動作します。JSが無効になっている場合でも、小さなポップアップではありませんが、共有ウィンドウは開きます。

<a onclick="return !window.open(this.href, 'Share on Facebook', 'width=640, height=536')" href="https://www.facebook.com/sharer/sharer.php?u=href=$url&display=popup&ref=plugin" target="_window"><img src='/_img/icons/facebook.png' /></a>

$ url varを共有するURLとして定義する必要があります。


ページがhttpsで始まる私の場合には機能しません...?
d4v1dv00 2015

1
Facebookが共有の他のパラメーターのサポートを停止したため、この回答は現在無効です
Vikrant


-2

AllisonCのアイデアをwindow.open機能と組み合わせることができます:http : //www.w3schools.com/jsref/met_win_open.asp

function openWin(url) {
    myWindow = window.open(url, '', 'width=800,height=400');
    myWindow.focus();
}

そして、各リンクで、適切なソーシャルネットURLを使用してopenWin関数を呼び出します。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.