2017-09-30 13 views
0

My JSONの下には、細かい数字がダミー番号であることが検証されています。この文字列は変数$payloadに割り当てられます。Eventbrite Batch Endpoint - JSON形式ではないリクエスト本体を渡しました

[{ 
    "method": "GET", 
    "relative_url": "series/4/events/?expand=ticket_classes" 
}, { 
    "method": "GET", 
    "relative_url": "series/5/events/?expand=ticket_classes" 
}, { 
    "method": "GET", 
    "relative_url": "series/6/events/?expand=ticket_classes" 
}, { 
    "method": "GET", 
    "relative_url": "series/7/events/?expand=ticket_classes" 
}, { 
    "method": "GET", 
    "relative_url": "series/8/events/?expand=ticket_classes" 
}, { 
    "method": "GET", 
    "relative_url": "series/9/events/?expand=ticket_classes" 
}] 

次のように私のPHPは次のとおりです。

$url = "https://www.eventbriteapi.com/v3/batch/?token=".$token; 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_VERBOSE, true); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
    curl_setopt($ch, CURLOPT_POSTFIELDS,$payload); 
    curl_setopt($ch, CURLOPT_HTTPHEADER, array(                   
     'Content-Type: application/json',                     
     'Content-Length: ' . strlen($payload))                  
    ); 
    curl_setopt($ch, CURLOPT_POST, 1); 
    $body = \curl_exec($ch); 
    curl_close($ch); 
    $json = \json_decode($body,true); 
    echo $body; 

エコーを吐き出している:

{"status_code": 400, "error_description": "You passed a request body that was not in JSON format.", "error": "INVALID_BODY"} 

すべてが罰金だ - 何かを明らかに不足しているI?

それぞれが、私はちょうどページネーションの詳細なしイベントの詳細を持っている身体の応答を得るために、私は、https://www.eventbriteapi.comサイトを介してデータを渡す

...

おかげ

答えて

0

編集HTTPClient.php

この置き換えます。これにより

$options = array(
     'http'=>array(
      'method'=>$httpMethod, 
      'header'=>"content-type: application/json\r\n", 
      'content'=>$data, 
      'ignore_errors'=>true 
     ) 
    ); 

$options = array(
     'http'=>array(
      'method'=>$httpMethod, 
      'header'=>"content-type: application/json\r\n", 
      'ignore_errors'=>true 
     ) 
    ); 

    if ($httpMethod == 'POST') { 
     $options['http']['content'] = $data; 
    } 

参考文献:https://github.com/eventbrite/eventbrite-sdk-php/issues/7#issuecomment-308537756

関連する問題