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

このコミュニケーションには、リクエストの方が適切な (そして効果的な) チャネルのように思えます。リクエストを使用すると、リクエストとともに自動的に生成される通知という追加の利点があります。Requests ダイアログを使用して、非常に簡単にリクエストを送信できます。

ただし、元の質問に答えるには、「publish_stream」権限と、使用しているアクセス トークンが受信者のウォールに投稿できるユーザー (設定可能なプライバシー設定) を持っている限り、必要なことはすべてです。次の目的で POST リクエストを発行します。

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

(フィード ストーリーを投稿するためのパラメータは、ここにあります。) PHP SDK を使用している場合は、必ずバージョン 3にアップグレードしてください( 9 月 1 日までにアップグレードする必要があります)。

于 2011-07-21T01:14:35.780 に答える
1

もはや不可能です。そのためには、フィード ダイアログを使用する必要があります。

于 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 に答える