2013-01-23 56 views
0

我希望它沒有那麼複雜,但是由於Facebook已經改變了它的API很多(關於權限等),我發現很多過時的信息並沒有真的幫助我。 的情況是:Facebook頁面 - 張貼到用戶牆上(在用戶喜歡頁面後)

  1. 我有一個Facebook頁面,頁面標籤
  2. 我得到了它與該頁面關聯(通過標籤)一個Facebook應用程序內。
  3. 我自己的WebApp通過Facebook PHP-SDK發佈到頁面的牆上,每個用戶都可以看到流中的新聞。

問:如何通過該應用發佈到用戶時間表?

到目前爲止我的代碼(帖子頁面的牆)

require 'facebook.php'; 
$facebook = new Facebook(array(
    'appId' => 'xxxxxxxxxxxxxx', 
    'secret' => 'xxxxxxxxxxxxxxxxxxxxxxxxxx', 
)); 
$loginUrl = $facebook->getLoginUrl(); 
$user = $facebook->getUser(); 

$page_id = 'xxxxxxxxxxxxxxxxxxxx'; 
$page_info = $facebook->api("/$page_id?fields=access_token"); 
if(!empty($page_info['access_token'])) { 
    $args = array(
     'access_token' => $page_info['access_token'], 
     'message'  => "Neuer Test!" 
    ); 
    $post_id = $facebook->api("/$page_id/feed","post",$args); 
} else { 
    $permissions = $facebook->api("/me/permissions"); 
    if(!array_key_exists('publish_stream', $permissions['data'][0]) || 
     !array_key_exists('manage_pages', $permissions['data'][0])) { 
     header("Location: " . $facebook->getLoginUrl(array("scope" => "publish_stream, manage_pages"))); 
    } 

} 

這是工作的罰款,但該消息不是誰喜歡網頁的用戶的時間軸中可用,僅在其自己的流。是否有可能發佈到他們的時間表?

+0

要求用戶登錄到你的應用程序,並確保你有publish_stream權限,一旦你的權限和用戶登錄您可以通過一個POST請求張貼到他們的牆上。 「/ me/feed」與所需參數(Check Docs)。但我不認爲這是由FB所允許的(用戶應該知道你的應用將發佈,否則你可能會破壞FB的Platform TOS)。在實施諸如FB可能會限制你的應用的發佈權限之前,你可能想檢查他們的TOS。 –

回答

0

不知道你是否仍然需要幫助。但爲了以防萬一,這段代碼適合我。它假定你有一個登錄用戶。併發布到用戶的時間表。這段代碼沒有得到我相信的許可,你需要努力,因爲Facebook有Platform TOS。試試這個:

 require_once('libs/facebook.php'); 

    // init new facebook class instance with app info (taken from the DB) 
    $facebook = new Facebook(array(
     'appId' => 'your app id here', 
     'secret' => 'your app secret here' 
    )); 



    $fb_user_id = $facebook->getUser(); 
    $location = "". $facebook->getLoginUrl(array('scope' => 'publish_stream')); 

    if ($fb_user_id) { 
     try { 
      $fb_user_profile = $facebook->api('/me'); 

     } catch (FacebookApiException $e) { 
      $fb_user_id = NULL; 

      print '<script language="javascript" type="text/javascript"> top.location.href="'. $location .'"; </script>'; 
      die(); 
     } 
    } else { 

     print '<script language="javascript" type="text/javascript"> top.location.href="'. $location .'"; </script>'; 
     die(); 
    } 


    $ret_obj = $facebook->api('/me/feed', 'POST', 
          array(
          'link' => 'www.google.com', 
          'message' => 'Google me!' 
              )); 
+0

上面的代碼,即使用戶(而不是管理員)喜歡頁面嗎?我用我設置爲用戶的其他帳戶嘗試過,但沒有發佈。它只在管理員使用該頁面時發佈。 – user2978990

相關問題