2017-06-24 10 views
0

"Survey Monkey"のウェブフックを設定する際に問題があります。 APIによると、ドキュメント:Survey Monkey - webhook私はすべての必要な引数が自分のコードでカバーされていると思うが、私はエラー "身体の無効なスキーマが提供されて"を取得します。これは主に、POSTされたJSON文字列データに問題があることを意味します。しかし、私は...何が間違っているSurvey Monkey API用のPHPカール - webhook

私のカールを見つけることができません。

$surveyId = '123456789'; 
$data_string = array(
     'name' => 'my webhook 1233456789 name', 
     'event_type' => 'response_completed', 
     'object_type' => 'survey', 
     'object_ids' => array($surveyId), 
     'subscription_url' => 'http://sometunnel.ngrok.io/job-survey-monkey-listener/completed', 
    ); 
$data_string = json_encode($data_string); 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, 'https://api.surveymonkey.net/v3/webhooks'); 
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'Authorization: bearer 123myaccestoken456.abc.def', 'Content-Length: ' . strlen($data_string))); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string); 
$server_output = curl_exec($ch); 
curl_close($ch); 

var_dump(json_decode($server_output, true)); die; 

調査モンキーからの戻りのダンプがある:

array (size=1) 
'error' => 
    array (size=5) 
     'docs' => string 'https://developer.surveymonkey.com/api/v3/#error-codes' (length=54) 
     'message' => string 'Invalid schema in the body provided.' (length=36) 
     'id' => string '1002' (length=4) 
     'name' => string 'Bad Request' (length=11) 
     'http_status_code' => int 400 

私はここで間違って何をしますか?

+2

Bodyが正しく見えますが、 'object_ids'はIDのリストであることを確認してください*文字列*?あなたの例は、文字列としてハードコードされたID「123456789」を持っていますが、実際のコードで送信される値は多分でしょうか? –

+0

それを見つけたら、あなたの答えは私に考えさせ始めました。私は地元のコードの最初に整数としてIDを送りましたが、それは間違っていました。上の私のコード例では、 "$ surveyId = '123456789'という行を追加しました;"これをスタックオーバーフローに関する質問として表示する。これは実際には正しいコードです! 調査IDは文字列でのみ機能し、整数では機能しません。問題に私に指示を与えてくれてありがとう! – Julesezaar

答えて

0

ありがとうGeneral Kandalaft サーベイモンキーAPIは、新しいwebhookを作成するためにCurlを作成するための整数を受け入れません。あなたは文字列としてIDを送信する必要があります。したがって、上記のコードは正しいです。

関連する問題