ここにコードがあります。このコードは、投稿の「リンク フィールド」にリンクが含まれていない場合に非常にうまく機能します。メッセージは、「フィールド メッセージ」内のリンクの有無にかかわらず送信できます。フィールド メッセージに投稿されたリンクは、次のようになります。クリック可能なテキスト リンク (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; } } }