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
以前の方法で共有を行うための解決策を見つけたので、私は自分の質問に答えましたが、コードを機能させるにはアプリが必要です。
新しいプロジェクトでは古い方法で同じことをしなければならなかったので、私はこの長い後に正解を変更し、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アプリを作成するには、開発者として登録し、次のリンクにアクセスしてアプリを作成する必要があります。
適切な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 -ボタン
私は他の答えに同意します、 OpenGraphプロトコル を使用してください
さて、私はあなたと同じような状況にあります...カスタマイズされたタイトルと説明を持つ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に表示されるのと同じ方法でプルします。
これを解決する最も簡単な方法は、フィードダイアログを使用することです: https://developers.facebook.com/docs/sharing/reference/feed-dialog
今日はこれを理解しようとして何時間も無駄にしたので、私もこれを別の質問に投稿しました。うまくいけば、それは誰かの時間を解決するでしょう。 APPIDが必要です。