1

我在Facebook上製作了一個非常簡單的禮物應用程序。這裏的主要問題是如何通知未使用應用程序的用戶關於他的朋友給他發送禮物的事實?如何通過圖形API在朋友的牆上張貼飼料項目

由於舊REST API上的通知被禁用,並且stream.publish對於未授權在牆上發佈的朋友無效,所以我很困惑。

if (!empty($_REQUEST["ids"])) { 
    $friends = (isset($_REQUEST["ids"])) ? $_REQUEST["ids"] : 0; 

    if (empty($_POST['giftname'])) { 
     $gname = '1.gif'; 
    } else { 
     $gname = $this->input->post('giftname'); 
    } 
    //$this->app_model->send_gift($user, $friends, $gname,$facebook); 
    //$this->app_model->send_gift($user, $friends, $gname,$facebook); 
    $to=$friends; 
    $from=$user; 
    $gift=$gname; 

    $total_send=count($friends); 

    for ($x=0; $x<$total_send; $x++) { 

     $this->db->query("INSERT INTO gifts (`giftfrom`, `giftto`, `gname`) VALUES($from, $to[$x], \"$gift\")"); 

     try { 
      // Send notification 
      //$facebook->api_client->notifications_send($to[$x], 'sent you a gift using <a href="http://apps.facebook.com/tsaxikner/">Հայկական Նվերներ</a>. <a href="http://apps.facebook.com/tsaxikner/">Ստանալ Նվերը</a>.'); 

      // Publish feed story 
      $feed_body = '<fb:userlink uid="'.$from.'" shownetwork="false"/>-ը նվեր է ուղարկել <fb:name uid="'.$to[$x].'"/>-ին <a href="http://apps.facebook.com/tsaxikner/">Հայկական Նվերներ</a>-ի միջոցով.'; 

      $feed_body = 'Ստուգեք <a href="http://apps.facebook.com/tsaxikner/"> <fb:name uid="'.$to[$x].'" firstnameonly="true" possessive="true"/> Հայկական Նվերներ</a>.'; 

      //$facebook->api_client->feed_publishActionOfUser($feed_title, $feed_body); 
      $facebook->api_client->make_wall_post($user,$to[$x],$feed_body); 
      $facebook->api_client->notifications_sendEmail($user, 'You have a gift', $feed_body, $fbml); 

      //$facebook_graph->api('' $message, null, null, $target_id); 
     } 
     catch(Exception $e) { 
      echo $e->getMessage(); 
     } 
    } 
    // end of for 
} 

我使用FBML

+0

我們現在可以通過php-sdk發送文章到fb-wall。檢查我的答案。 – 2012-02-29 17:41:42

回答

0

沒有辦法直接張貼在另一個人牆。如果你想邀請他們使用你的應用程序,你將不得不使用request-form-submit fbml標籤。你可以在這裏找到這個:http://developers.facebook.com/docs/reference/fbml/request-form-submit。在那個用戶允許你的應用程序之後,你可以在他們的牆上張貼。

+1

現在,我們可以通過php-sdk發送fb-wall上的文章。檢查我的答案。 – 2012-02-29 17:42:02

4

這聽起來像一個request將是一個更適合(和有效)溝通此通信。有了一個請求,您將獲得notification的附加優勢,它將隨您的請求自動生成。您可以非常方便地使用Requests dialog發送請求。

要回答你的原始問題,只要你有「publish_stream」permission和你正在使用的訪問令牌的用戶被允許發佈在收件人的牆上(這是一個可以設置的隱私設置),所有你需要做的是發出一個POST請求:

https://graph.facebook.com/USER2ID/feed?link=YOURLINK 

(你可以找到張貼飼料故事here的參數。)如果你使用的PHP SDK,請確保您升級到version 3(這是反正你在9月1日升級了)。

7

我可以通過PHP API在用戶的朋友牆上發帖。

試試這個:

$facebook->api('/[FRIEND_ID]/feed', 'post', array(
      'message' => 'test message', 
      'link' => 'http://google.com', 
      'name' => 'test name', 
      'caption' => 'test caption', 
      'description' => 'test long description', 
    )); 
+1

知道您需要'publish_actions,publish_stream'權限很重要。 – 2012-08-10 15:36:41

+0

@TomRoggero:是的。我們需要這2個權限2個帖子項目。 – 2012-08-10 17:41:36

+1

@MrGewa:這個答案能解決你的問題嗎?如果是,請將其標記爲已接受。否則你接下來需要什麼。 – 2012-11-15 06:14:01

相關問題