对facebook批量请求的限制

时间:2016-06-14 20:56:15

标签: facebook facebook-php-sdk facebook-batch-request

我尝试通过批量请求调用用户帖子。 所以我的想法是创建一个多维数组。 每个数组都有50个请求

$fb->request('GET','/'.$user.'?fields=id,posts{created_time,message,id}');

第一个问题:这是一个请求吗?我想是的......

之后,我想为每个阵列进行批量调用......

foreach($batch_array as $batch){
    try {
        $responses = $fb->sendBatchRequest($batch);     
[...]

这是问题所在: 如果我将请求数设置为50 /数组,我会在第一次调用后得到错误:

  

您一次不能发送超过50个批处理请求

在一个阵列中只有一个或10个请求,我在50或5次批量调用后也会收到此错误。

有谁知道我做错了什么?

谢谢, 马库斯

编辑:

while($userFB= mysqli_fetch_assoc($userFB_result)){
    if($req < 49){
        $batch[] = $fb->request('GET','/'.$userFB['facebook_id'].'?fields=id,posts{created_time,message,id}');
        $req++;
    } else {
        $batch_array[] = $batch;
        $req = 0;
    }
}
$batch_array[] = $batch;

foreach($batch_array as $batch){
    try {
        $responses = $fb->sendBatchRequest($batch);      
        $responses_array[] = $responses;
    } catch(FacebookExceptionsFacebookResponseException $e) {
        // When Graph returns an error
        echo 'Graph returned an error: ' . $e->getMessage();
        exit;
    } catch(FacebookExceptionsFacebookSDKException $e) {
        // When validation fails or other local issues
        echo 'Facebook SDK returned an error: ' . $e->getMessage();
        exit;
    } 
}

1 个答案:

答案 0 :(得分:0)

您没有将$ batch设置回一个空数组,因此您的$ batch变量不断增长。

# Create actual data frame
Data_act <- subset(Data,Data$Type=="Actual")

# Create forecast frame with descriptive columns
Data_fc <- subset(Data[1:5],Data$Type=="Forecast")

# Create empty data frame for forecast results
Data_fc2 <- subset(Data[,6:9],Data$Type=="Forecast")
Data_fc2 <- Data_fc2[1:12,]
Data_fc3 <- Data_fc2 # temp table for loop

# Create list of unique forecast names
UniqueList <- unique(Data_act$forecast_name)

# Loop through unique list of forecast names and run time series
for(i in 1:length(UniqueList)){

    # Subset data for forecast name
    df <- subset(Data_act,Data_act$forecast_name==UniqueList[i])

    # Create time series objects
    dftsunits <- ts(df$Units,start = c(2015,1),frequency = 4)
    dftsasp <- ts(df$ASP,start = c(2015,1),frequency = 4)

    # Train forecasting models (Holt-Winters and ARIMA)
    FC_Units_HW <- hw(dftsunits,h=12)
    FC_Units_Arima <- auto.arima(dftsunits,lambda = 0) #lambda = 0 prevents negative forecasts
    FC_ASP_HW <- hw(dftsasp,h=12)
    FC_ASP_Arima <- auto.arima(dftsasp,lambda = 0)

    # Forecast models for 12 quarters
    FC_Units_HW2 <- forecast(FC_Units_HW,h=12)
    FC_Units_Arima2 <- forecast(FC_Units_Arima,h=12)
    FC_ASP_HW2 <- forecast(FC_ASP_HW,h=12)
    FC_ASP_Arima2 <- forecast(FC_ASP_Arima,h=12)

    # Save results
    Data_fc3$Units_HW <- FC_Units_HW2$mean
    Data_fc3$Units_ARIMA <- FC_Units_Arima2$mean
    Data_fc3$ASP_HW <- FC_ASP_HW2$mean
    Data_fc3$ASP_ARIMA <- FC_ASP_Arima2$mean

    # Add results to master result data frame
    Data_fc2 <- rbind(Data_fc2,Data_fc3)
}

Data_fc2 <- na.omit(Data_fc2)# Remove original 12 empty rows
Data_fc <- cbind(Data_fc,Data_fc2)
Data_Final <- rbind(Data_act,Data_fc)