1

ここにコードがあります。このコードは、投稿の「リンク フィールド」にリンクが含まれていない場合に非常にうまく機能します。メッセージは、「フィールド メッセージ」内のリンクの有無にかかわらず送信できます。フィールド メッセージに投稿されたリンクは、次のようになります。クリック可能なテキスト リンク (http://www.mylinkposted.com/withoutmetadata/) で、次のような投稿を送信できます。

こんにちは、やっと新しいウェブサイトが完成しました

http://mywebsite.com

あなたの経験からのフィードバックを待っています。

しかし、リンクが「リンクフィールド」内に書かれている(コピーされている)場合、そこからメタデータが抽出され、投稿には説明、キャプション、タイトル、画像、ソースが含まれます...そしてユーザーが持っている場合、投稿は次のようになります他のユーザー フィード/ウォールですべての投稿パラメーターを含むリンクを共有し、きれいに見えますが、通知ストリームに通知が来ず、通知を送信せずに投稿するだけで本当にスパムのように見えます。これを解決するにはどうすればよいと思いますか?問題?

                $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;
                        }
                    }
                }

4

0 に答える 0