web-dev-qa-db-ja.com

FacebookSharer-タイトルと概要のカスタマイズ

Djangoのプロジェクトで作業していて、FacebookとTwitterでページを共有しようとしています

Facebookで問題が発生しました。共有するタイトルと概要をカスタマイズして、インデックスページと他のページを共有するときにテキストを変更したいと思います。

私は使ってみました:

<a href='http://www.facebook.com/sharer.php?s=100&
p[title]=TITLE+TEST&
p[summary]=summary&
p[url]=http://{{ request.META.HTTP_Host }}{{ request.path }}&
p[images][0]=http://whatever.com/media/img/img_facebook.jpg' 
target="_blank">
<img src="{{STATIC_URL}}img/ico_facebook_small.png" title="Facebook" alt="Facebook" ></a>

さらに追加:

<meta property="og:title" content="My Title" />

変更できるのは、表示されたURLと画像の2つだけです。 Facebookの共有者はタイトルと要約を無視します。過去1時間にインターネットで検索しましたが、自分に合った解決策が見つかりませんでした。

Facebookの共有者がもう機能していないかどうか誰かが知っていますか?カスタムタイトルと要約の解決策はありますか?

ありがとう


[〜#〜]編集[〜#〜]

現在、ogメタタグを使用していますが、まだ問題があります。各ページに異なるタイトルを付けたいので、Javascriptでタイトルを取得する必要があります(「og:title」コンテンツをjsで変更します)が、Facebookはタイトルの一部しか取得しないため、変更の有効化が遅すぎるようです。それは静的です。

私は次のようなものを持っています:

<meta property="og:title" content="TitlePage" /> 

jsを介してコンテンツを変更して

<meta property="og:title" content="TitlePage SOMETHINGELSE" /> 

変更は問題なく有効になりますが、私が言ったように、Facebookはその変更を検出しません。


編集2

以前の方法で共有を行うための解決策を見つけたので、私は自分の質問に答えましたが、コードを機能させるにはアプリが必要です。

12
AlvaroAV

OpenGraphメタタグのないFacebookSharer

新しいプロジェクトでは古い方法で同じことをしなければならなかったので、私はこの長い後に正解を変更し、Facebookで簡単なアプリを作成することで最終的にこのコードを正常に動作させることができます:

このサンプルアプリの情報: Facebook送信ダイアログ

APP_ID:Facebookアプリ識別子
http://www.THEPAGE.com :これは私のドメインになります

$('#share_button').bind('click', function(e){
        e.preventDefault();
        var title = 'Title I want';
        var im_url = 'url_to_image';
        var facebook_appID = 'YourFacebookAppID'
        url = "https://www.facebook.com/dialog/feed?app_id="+ facebook_appID +    "&link=" + encodeURIComponent("http://www.THEPAGE.com")+ 
                    "&name=" + encodeURIComponent(title) + 
                    "&caption=" + encodeURIComponent('Shared from MY_PAGE') + 
                    "&description=" + encodeURIComponent('DESCRIPTION') + 
                    "&picture=" + encodeURIComponent("http://www.THEPAGE.com" +im_url) +
                    "&redirect_uri=https://www.facebook.com";
        window.open(url);
    });

これを行うにはFacebookアプリが必要です

Facebookアプリを作成するには、開発者として登録し、次のリンクにアクセスしてアプリを作成する必要があります。

Facebook開発者APPS

12
AlvaroAV

適切なOpenGraphメタタグを使用してページを設定します。

これは、Facebookの共有スクリプトで機能するはずです。これにより、共有ボタンを使用せずにFacebookに直接リンクを投稿したときに、ページの正しいタイトル、画像、説明も表示されます。

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

Facebookのドキュメントを確認することをお勧めします https://developers.facebook.com/docs/web/webmasters/https://developers.facebook.com/docs/plugins/share -ボタン

8
Urban Björkman

私は他の答えに同意します、 OpenGraphプロトコル を使用してください

  1. ただし、機能しない場合は、URLが公開されていることを確認してください。
  2. それでも機能せず、メタタグが正しいと確信している場合は、Facebookがページをキャッシュしたことを意味します。
  3. Facebookキャッシュを削除するには、Facebook Object Debuggerページに移動し、リンクを貼り付けます。これを行うことにより、Facebookはキャッシュを強制的に更新し、メタタグの値を表示します。それはあなたの問題を解決するはずです。
6
glautrou

さて、私はあなたと同じような状況にあります...カスタマイズされたタイトルと説明を持つsharer.phpは数日前まで機能していました、そしてそれ以来、OGメタデータだけが存在するときに表示されています!

可能であれば、共有URLの公式バージョンを使用することをお勧めします。これは、クエリ文字列で共有URLのみを受け入れるようになりました。例: https://www.facebook.com/sharer/sharer.php ?u = https%3A%2F%2Fparse.com

https://developers.facebook.com/docs/plugins/share-button/#faqdialog を参照してください

次に、ページにOpenGraphメタデータを設定する必要があります。

Facebookがデバッグページでページをどのように処理するかを確認できます: https://developers.facebook.com/tools/debug/

編集:

Sharer.php URLのカスタムパラメータは正式にサポートされなくなりました: https://developers.facebook.com/bugs/357750474364812

Ibrahim Faour-Facebookの開発者サポートエンジニア

共有プラグインの動作を変更して、プラットフォーム上の他のプラグインや機能と一貫性を持たせました。

共有者はカスタムパラメータを受け入れなくなり、Facebookはプレビューに表示されている情報をURLOGメタタグから投稿としてFacebookに表示されるのと同じ方法でプルします。

1
vcarel

これを解決する最も簡単な方法は、フィードダイアログを使用することです: https://developers.facebook.com/docs/sharing/reference/feed-dialog

今日はこれを理解しようとして何時間も無駄にしたので、私もこれを別の質問に投稿しました。うまくいけば、それは誰かの時間を解決するでしょう。 APPIDが必要です。

1
Bob