2013-01-15 30 views
0

我使用$ facebook-> api自动发布故事,当用户接受我的应用程序并在我的网站上读取故事。这一切都可以正常工作,但问题是当他刷新页面或重新访问页面时,同样的故事/链接会重新张贴在他的墙上! 如何为一位用户发布故事一次! 我在wordpress中这样做!Facebook应用程序发布故事一次

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>'; 
    } 
+0

你可以在这里发布一些代码,尤其是自动发布部分? – mallix

+0

e dited原帖 –

回答

1

如何:

创建像一个数据库表:

[user_article_posted] 
user_article_posted_id 
user_id 
article_id 

每次用户读取(负载)的文章,如果通过Facebook登录,检查是否有是user_id/article_id记录的组合。

  1. 如果没有:不发布到Facebook
  2. 如果不是:插入新行,该行表(用户/条),并发布故事给Facebook

user_ID的也可能是fbuser视在你的结构上。

+0

这是一个好主意,thnx mallix我尝试了coockies和会议,但这并不奏效! –

+0

是的,没有必要在这里使用会话。只要检查用户是否过去发布了文章(使用该表格来跟踪记录),并且您可以继续。 – mallix

+0

马利克斯我得到它的工作,并接受你的答案。我发现如果用户从他们的墙上删除故事,我将无法再重新发布,因为我的故事存在于我的数据库中! :S也许有一种方法用fb-api来检查用户墙上存在链接的天气 –

相关问题