用于Facebook通知的cURL循环


cURL Loop for Facebook Notifications

我正试图通过我们的Facebook应用程序向用户发送通知。

可能一次达到50-100,而且似乎无法让cURL循环通过。。。我可以寄一个,但就是这样。当然,我只是错过了一些简单的东西,但我希望能有其他的眼光!

代码为:

<?php
include('../inc.php');
//App Access Token
$appat = file_get_contents("https://graph.facebook.com/oauth/access_token?client_id=xxxxxxxxxx&client_secret=xxxxxxxxxxx&grant_type=client_credentials");
parse_str($appat);
//Notify
$sql = "SELECT * FROM ats";
$result = mysql_query($sql);
while($row = mysql_fetch_array($result))
{
    $userid = $row['UserID'];
    $url = "https://graph.facebook.com/$userid/notifications";
    $attachment =  array(   
                     'access_token'  => "$access_token",
                     'href' =>  "?a=1",
                     'template' => "Template Message",
                     'ref'          => "ActT"
                   );
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL,$url);
    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,1);
    $result = curl_exec($ch);
    curl_close ($ch);
}
include('../inc2.php');
?>

感谢大家的回复!不幸的是,Facebook SDK不是一个选项,经过一些研究,这解决了我的问题:

<?php
include('../inc.php');
    $mh = curl_multi_init();
$appat = file_get_contents("https://graph.facebook.com/oauth/access_token?client_id=xxxxxxxxxx&client_secret=xxxxxxxx&grant_type=client_credentials");
parse_str($appat);

$sql = "SELECT * FROM ats";
$result = mysql_query($sql);
while($row = mysql_fetch_array($result)){
$i = $row['ID'];
echo $i;
    $userid = $row['UserID'];
    $url = "https://graph.facebook.com/$userid/notifications";
    $attachment =  array(   'access_token'  => "$access_token",
                        'href'  =>  "?a=1",
                        'template'  => "Template Message",
                        'ref'          => "DanceCouple"
                    );
    ${'ch_' . $i} = curl_init();
    curl_setopt(${'ch_' . $i}, CURLOPT_URL,$url);
    curl_setopt(${'ch_' . $i}, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt(${'ch_' . $i}, CURLOPT_SSL_VERIFYHOST, 2);
    curl_setopt(${'ch_' . $i}, CURLOPT_POST, true);
    curl_setopt(${'ch_' . $i}, CURLOPT_POSTFIELDS, $attachment);
 // build the multi-curl handle, adding both $ch    
    curl_multi_add_handle($mh, ${'ch_'.$i});
}    
    $running = null;
    do {
        curl_multi_exec($mh, $running);
    } while ($running);

    include('../inc2.php');
?>