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個の通知を送信できます