1

我正在 Facebook 上制作一个非常简单的礼物应用程序。这里的主要问题是如何通知不使用应用程序的用户他的朋友送他礼物的事实?

由于通知在旧的 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

4

4 回答 4

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',
      ));
于 2012-02-21T11:10:48.927 回答
4

听起来请求将是这种沟通的更合适(和有效)的渠道。通过请求,您可以获得通知的额外好处,该通知将与您的请求一起自动生成。您可以使用“请求”对话框非常轻松地发送请求。

不过,要回答您的原始问题,只要您拥有“publish_stream”权限并且您使用其访问令牌的用户被允许在收件人的墙上发布(这是可以设置的隐私设置),您只需要要做的是发出 POST 请求:

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

(您可以在此处找到发布提要故事的参数。)如果您使用的是 PHP SDK,请确保升级到第 3 版(无论如何都要求您在 9 月 1 日之前升级)。

于 2011-07-21T01:14:35.780 回答
1

它不再可能。您需要使用Feed Dialog来执行此操作。

于 2013-09-06T16:50:02.607 回答
0

没有办法直接张贴在另一个人的墙上。如果您想邀请他们使用您的应用程序,则必须使用 request-form-submit fbml 标签。你可以在这里找到:http: //developers.facebook.com/docs/reference/fbml/request-form-submit。在该用户允许您的应用后,您就可以在他们的墙上发布。

于 2010-10-05T06:32:23.543 回答