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