【问题标题】:Linking responses to requests with Facebook Batch Requests使用 Facebook 批量请求将响应链接到请求
【发布时间】:2011-11-10 02:06:22
【问题描述】:

我正在使用Facebook's Batch Requests 发布到多个提要,我需要将正确的响应链接到批处理中的每个请求。由于我在文档中没有找到明确的信息,因此返回数组的成员是否与请求的顺序相同?

换句话说,如果我在返回数组的第三个成员中收到错误,这是否肯定意味着该错误是指我在批处理中发送的第三个请求?

我可以将 id 用于成功的请求,但错误消息似乎很笼统,并且不会带来与生成它们的请求相关联的任何数据(除非我遗漏了什么)。

【问题讨论】:

    标签: facebook facebook-batch-request


    【解决方案1】:

    是的,没错。

    我的策略是在加载批处理请求时创建一个跟踪数组。该数组将关联数组的键与我发布批次的数字顺序相关联。当我遍历结果时,我使用一个计数器来遍历跟踪数组并提取正确的关联数组索引。然后我用它来用批处理操作的那一步的结果更新关联数组。

    如果批处理支持 'name' 参数并且每个响应都返回该参数,那就太好了。但这似乎只有在您使用该名称来创建批处理依赖项时才有效: https://developers.facebook.com/docs/reference/api/batch/

    加载批次:

    foreach ($campaigns as $title => $campaign) {
        if (count($batch) == 20) {
            $batches[] = $batch;
            $batch = array();
        }
    
        $titles[] = $title;  #TRACKING array;
        $body = http_build_query($campaign);
        $body = urldecode($body);
    
        $batch[] = array(
            'method' => 'POST',
            'relative_url' => "/act_{$act}/adcampaigns",
            'body' => $body
        );
    }
    

    处理批次:

    if ($batch) {
        $batches[] = $batch;
        $counter = 0;
    
        foreach ($batches as $batch) {
            $params = array(
              'access_token' => $access_token,
              'batch' => json_encode($batch)
            );
    
            $responses = $facebook->api('/', 'POST', $params);
    
            foreach ($responses as $response) {
                $response = json_decode($response['body'], 1);
                $campaign_id = $response['id'];
                $title = $titles[$counter];  #RETRIEVING THE INDEX FROM THE TRACKING ARRAY
                $campaigns[$title]['campaign_id'] = $campaign_id;
                $counter++; #INCREMENTING THE COUNTER
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2014-08-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-03
      • 1970-01-01
      • 2011-04-29
      • 2012-03-21
      相关资源
      最近更新 更多