0

$ facebook-> apiを使用して、ユーザーが私のアプリケーションを受け入れ、私のWebサイトでストーリーを読んだときに、ストーリーを自動投稿しています。これはすべて正常に機能しますが、問題は、彼がページを更新したとき、またはページに再度アクセスしたときに、同じストーリー/リンクが彼の壁に再投稿されることです!1人のユーザーに対してストーリーを1回公開するにはどうすればよいですか?私はワードプレスでこれをやっています!

include_once("fb_config.php");
        //Setup Facebook post url and login url
        $post_url = '/'.$fbuser.'/feed';
        $loginUrl = $facebook->getLoginUrl(array(
             'canvas' => 1,
             'fbconnect' => 0,
             'scope' => $fbPermissions,
             'redirect_uri'=>$homeurl
        ));
        //Setup the message to be posted on users wall
        $thumbnail = wp_get_attachment_url( get_post_thumbnail_id($post->ID, 'thumbnail') );
        $description = my_excerpt( $post->post_content, $post->post_excerpt );
        $description = strip_tags($description);
        $description = str_replace("\"", "'", $description);
        $p_title = html_entity_decode(get_the_title(), ENT_NOQUOTES, 'UTF-8');
        $news = array(
            'message'       => '',
            'name'          => htmlspecialchars_decode($p_title),
            'link'          => get_permalink($post->ID),
            'caption'       => get_bloginfo ( 'description' ),
            'description'   => $description,
            'picture'       => $thumbnail
        );

    if ($fbuser) {
      try {
            $postResult = $facebook->api($post_url, 'post', $news );
        } 
        catch (FacebookApiException $e) {
        echo '<script>top.location.href = "'.$loginUrl.'"</script>';
      }
    }else{
        echo '<script>top.location.href = "'.$loginUrl.'"</script>';
    }
4

1 に答える 1

1

どうですか:

次のような db テーブルを作成します。

[user_article_posted]
user_article_posted_id
user_id
article_id

ユーザーが記事を読む (読み込む) たびに、facebook 経由でログインしている場合は、user_id/article_id レコードの組み合わせがあるかどうかを確認します。

  1. ある場合: Facebook に投稿しないでください
  2. そうでない場合:そのテーブル(ユーザー/記事)に新しい行を挿入し、ストーリーをFacebookに投稿します

構造によっては、user_id が fbuser になることもあります。

于 2013-01-15T15:01:55.320 に答える