次のようなURLで共有ポップアップ(window.open経由)を開いています
https://www.facebook.com/sharer/sharer.php?s=100&p[title]=EXAMPLE&p[summary]=EXAMPLE&p[url]=EXAMPLE&p[images][0]=EXAMPLE
そして先月かそこらでいくつかの未知の点まではすべてが大丈夫だった。
今起こっているのは、ポップアップダイアログが表示され、クエリ文字列パラメータによって提供されるTitle、Description、Image、およびURLが正しく含まれます。ただし、投稿が送信されると、Facebookのウォール投稿にTitle、Description、およびImageが表示されません。正しいURL.
突然これが機能しなくなった可能性がある最近の変更があったかどうかを誰かが知っていますか?
いくつかの一般的な反応を横取りする:
"sharer.php URLは廃止予定" - 使用方法は続いているようであり、それは主に問題が解決していると考えられているというコンセンサスのようでした - 突然動作を停止したはずの具体的な兆候は見当たりません -
「JavaScript SDK /これらのOGメタタグを使用する」 - 私の特定の状況では不可能 - 私を信頼してください。
「フィードダイアログを使用する」 - FBページに添付ファイルを付けて投稿するためのサポートがないため、適切ではありません
sharer.php
のカスタムパラメータをサポートしなくなりました共有者はカスタムパラメータを受け付けなくなり、facebookはプレビューに表示されている情報をurl OGメタタグからの投稿としてfacebookに表示されるのと同じ方法で取得します。
sharer.phpの代わりにdialog/feedsを使う
https://www.facebook.com/dialog/feed?
app_id=145634995501895
&display=popup&caption=An%20example%20caption
&link=https%3A%2F%2Fdevelopers.facebook.com%2Fdocs%2Fdialogs%2F
&redirect_uri=https://developers.facebook.com/tools/Explorer
quote
およびhashtag
パラメーターは、2018年12月の時点で機能します。突然これが機能しなくなった可能性がある最近の変更があったかどうかを誰かが知っていますか?
パラメータが変更されました。現在受け入れられている答えはこう述べています。
Facebookは
sharer.php
のカスタムパラメータをサポートしなくなりました
しかし、これは完全には正しくありません。まあ、多分supportまたはendorseそれら、しかし---あなたが正しい名前を知っていればカスタムパラメータを使うことができます。これらが含まれます:
u
picture
title
quote
description
caption
たとえば、この質問を次のURLで共有できます。
https://www.facebook.com/sharer/sharer.php?u=http%3A%2F%2Fstackoverflow.com%2Fq%2F20956229%2F1101509&picture=http%3A%2F%2Fwww.applezein.net%2Fwordpress%2Fwp-content%2Fuploads%2F2015%2F03%2Ffacebook-logo.jpg&title=A+Nice+question+about+Facebook"e=Does+anyone+know+if+there+have+been+recent+changes+which+could+have+suddenly+stopped+this+from+working%3F&description=Apparently%2C+the+accepted+answer+is+not+correct.
私はビルドしました ツール Facebook上のURLを共有しやすくしましたカスタムパラメータを使っています。あなたはそれをあなたのsharer.php
リンクを生成するために使うことができます、ただボタンを押して、開いたタブからURLをコピーしてください。
あなたが何らかの理由で実装することは不可能であるとあなたが言うようにあなたの問題はマーカーOpenGraphの欠如によって引き起こされます。
あなたにとって、唯一の解決策はPHP Facebook APIを使うことです。
アプリケーションを作成するときに、コードには2つの重要なデータがあります。
YOUR_APP_ID
YOUR_APP_SECRET
Facebook PHP SDKを こちら からダウンロードしてください。
あなたのサイトからコンテンツを共有するためにこのコードから始めることができます:
<?php
// Remember to copy files from the SDK's src/ directory to a
// directory in your application on the server, such as php-sdk/
require_once('php-sdk/facebook.php');
$config = array(
'appId' => 'YOUR_APP_ID',
'secret' => 'YOUR_APP_SECRET',
'allowSignedRequest' => false // optional but should be set to false for non-canvas apps
);
$facebook = new Facebook($config);
$user_id = $facebook->getUser();
?>
<html>
<head></head>
<body>
<?php
if($user_id) {
// We have a user ID, so probably a logged in user.
// If not, we'll get an exception, which we handle below.
try {
$ret_obj = $facebook->api('/me/feed', 'POST',
array(
'link' => 'www.example.com',
'message' => 'Posting with the PHP SDK!'
));
echo '<pre>Post ID: ' . $ret_obj['id'] . '</pre>';
// Give the user a logout link
echo '<br /><a href="' . $facebook->getLogoutUrl() . '">logout</a>';
} catch(FacebookApiException $e) {
// If the user is logged out, you can have a
// user ID even though the access token is invalid.
// In this case, we'll get an exception, so we'll
// just ask the user to login again here.
$login_url = $facebook->getLoginUrl( array(
'scope' => 'publish_stream'
));
echo 'Please <a href="' . $login_url . '">login.</a>';
error_log($e->getType());
error_log($e->getMessage());
}
} else {
// No user, so print a link for the user to login
// To post to a user's wall, we need publish_stream permission
// We'll use the current URL as the redirect_uri, so we don't
// need to specify it here.
$login_url = $facebook->getLoginUrl( array( 'scope' => 'publish_stream' ) );
echo 'Please <a href="' . $login_url . '">login.</a>';
}
?>
</body>
</html>
あなたはFacebook Developersサイトでより多くの例を見つけることができます:
使用中のURLを確認します。
https://www.facebook.com/sharer/sharer.php?s=100&p[title]=EXAMPLE&p[summary]=EXAMPLE&p[url]=EXAMPLE&p[images][0]=EXAMPLE
そしてこの違いを見てください。
私はこのURL文字列を使います:
http://www.facebook.com/sharer.php?s=100&p[url]=http://www.example.com/&p[images][0]=/images/image.jpg&p[title]=Title&p[summary]=Summary
"title"と "summary"セクションでは、私は次のようにphp関数urlencode();
を使います。
<?php echo urlencode($detail->title); ?>
そして私のためにうまく働いています。