0

19,000 人のユーザーに CURL 通知を送信する際に問題があります。

新しい FB アプリ通知 API は宝庫なので、友人のスコアがプレーヤーよりも高い場合にプレーヤーに通知するシステムをアプリに実装しました。問題は、アプリが curl を介して 19,000 の通知を送信する必要があり、これに約 950 時間かかることです。これらのニティフィケーションを送信するためのより高速なソリューションはありますか? つまり、ほとんどの大企業 (zynga など) がアプリ通知をうまく使用しているのを見てきましたが、送信する通知が私よりも少ないとは思いません :)

これが私のコードです

    関数 _getAppToken(){
            $APPLICATION_ID = "xxxxxxx";
            $APPLICATION_SECRET = "xxxxxxxx";

            $token_url = "https://graph.facebook.com/oauth/access_token?" .
                "client_id=" . $APPLICATION_ID .
                "&client_secret=" . $APPLICATION_SECRET .
                "&grant_type=client_credentials";
            //$app_token = file_get_contents($token_url);
            $accessToken = expand('=', file_get_contents($token_url));
            $accessToken[1] を返します。
        }

    function _curlDoNotifications($fb_id, $tokennn, $mesaj, $hrf = '')
        {
            $添付ファイル = 配列(
                'access_token' => $tokennn,
                'href' => $hrf,
                'テンプレート' => $mesaj
            );

            $ch = curl_init();
            curl_setopt($ch, CURLOPT_URL, 'https://graph.facebook.com/' . $fb_id . '/notifications');
            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
            curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
            curl_setopt($ch, CURLOPT_POST, true);
            curl_setopt($ch, CURLOPT_POSTFIELDS, $attachment);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, false); //curl 出力を抑制する
            $result = curl_exec($ch);
            curl_close($ch);
            $結果を返します。
        }

最初の関数はアプリ トークンを取得し、それを使用して 2 番目の関数 (curl) を介して通知を送信します。

アプリがインストールされており、通知を受ける必要がある foreach ユーザーに、これら 2 つの関数を適用します。問題は、2 番目の関数が 1 ユーザーあたり ~3 秒続くことです。

ありがとう

LATER EDIT:APIバッチ送信が答えです:)一度に最大50個の通知を送信できます

4

0 に答える 0