ここにコードがあります。このコードは、投稿の「リンク フィールド」にリンクが含まれていない場合に非常にうまく機能します。メッセージは、「フィールド メッセージ」内のリンクの有無にかかわらず送信できます。フィールド メッセージに投稿されたリンクは、次のようになります。クリック可能なテキスト リンク (http://www.mylinkposted.com/withoutmetadata/) で、次のような投稿を送信できます。
こんにちは、やっと新しいウェブサイトが完成しました
あなたの経験からのフィードバックを待っています。
しかし、リンクが「リンクフィールド」内に書かれている(コピーされている)場合、そこからメタデータが抽出され、投稿には説明、キャプション、タイトル、画像、ソースが含まれます...そしてユーザーが持っている場合、投稿は次のようになります他のユーザー フィード/ウォールですべての投稿パラメーターを含むリンクを共有し、きれいに見えますが、通知ストリームに通知が来ず、通知を送信せずに投稿するだけで本当にスパムのように見えます。これを解決するにはどうすればよいと思いますか?問題?
$app_id = "xxxxxxxxxxxxxxxx";
$app_secret = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
$site_url = "http://www.xxxxxxxxxxxxxxx.com/app00/index.php";
試す{
include_once "src/facebook.php";
}catch(例外 $e){
error_log($e);
}
$facebook = new Facebook(配列(
'appId' => $app_id,
'secret' => $app_secret,
));
$user = $facebook->getUser();
もし($ユーザー){
試す{
$user_profile = $facebook->api('/me');
}catch(FacebookApiException $e){
error_log($e);
$ユーザー = NULL;
}
}
もし($ユーザー){
// ログアウト URL を取得
$logoutUrl = $facebook->getLogoutUrl();
}そうしないと{
// ログインURLを取得
$loginUrl = $facebook->getLoginUrl(array(
'scope' => 'publish_stream user_groups',
'redirect_uri' => $site_url,
));
}
もし($ユーザー){
$クエリ = 配列(
array('method' => 'GET', 'relative_url' => '/'.$user),
array('method' => 'GET', 'relative_url' => '/'.$user.'/friends'),
array('method' => 'GET', 'relative_url' => '/'.$user.'/groups'),
array('method' => 'GET', 'relative_url' => '/'.$user.'/likes'),
);
試す{
$batchResponse = $facebook->api('?batch='.json_encode($queries), 'POST');
}catch(例外 $o){
error_log($o);
}
//ストリング。PHP 配列として使用するためにデコードします。
$user_info = json_decode($batchResponse[0]['body'], TRUE);
$friends_list = json_decode($batchResponse[1]['body'], TRUE);
$groups = json_decode($batchResponse[2]['body'], TRUE);
$pages = json_decode($batchResponse[3]['body'], TRUE);
if(isset($_POST['submit_x'])){
if($_POST['メッセージ'] || $_POST['リンク'] || $_POST['画像']) {
$body = 配列(
'メッセージ' => $_POST['メッセージ'],
'リンク' => $_POST['リンク'],
);
$batchPost=array();
$i=1;
$フラグ=1;
foreach($_POST as $key => $value) {
if(strpos($key,"id_") === 0) {
$batchPost[] = array('method' => 'POST', 'relative_url' => "/$value/feed", 'body' => http_build_query($body));
if($i++ == 50) {
試す{
$multiPostResponse = $facebook->api('?batch='.urlencode(json_encode($batchPost)), 'POST');
}catch(FacebookApiException $e){
error_log($e);
echo("バッチ投稿に失敗しました");
}
$フラグ=0;
unset($batchPost);
$i=1;
}
}
}
if(isset($batchPost)) {
試す{
$multiPostResponse = $facebook->api('?batch='.urlencode(json_encode($batchPost)), 'POST');
}catch(FacebookApiException $e){
error_log($e);
echo("バッチ投稿に失敗しました");
}
$フラグ=0;
}
}
そうしないと {
$フラグ=2;
}
}
}