2017-07-14 15 views
0

私はRESTを初めて使用しており、V3 APIを使用してSurveyMonkeyサーベイデータを取得することを任されています。私はPHPを使用しています。私のコードは次のとおりです。SurveyMonkey API V3のPHPコールでのハンドシェークエラー

$fields = array(
'title'=>'New Admission Survey', 
'object_ids' => array($surveyID)); 

$fieldsString = json_encode($fields); 

$curl = curl_init(); 
$requestHeaders = array(
"Authorization" => 'bearer abc123', 
"Content-Type" => 'application/json', 
'Content-Length: ' . strlen($fieldsString)); 

$baseUrl = 'https://api.surveymonkey.net/v3'; 
$endpoint = '/surveys/'; 

curl_setopt($curl, CURLOPT_URL, $baseUrl . $endpoint); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($curl, CURLOPT_HTTPHEADER, $requestHeaders); 
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST'); 
curl_setopt($curl, CURLOPT_POSTFIELDS, $fieldsString); 
$curl_response = curl_exec($curl); 

if($curl_response == false){ 
echo('Well, crap'); 
$info = curl_getinfo($curl); 
echo('<pre>');print_r($info);echo('</pre>'); 
echo('<pre>');print_r(curl_error($curl));echo('</pre>');} 
else { 
echo('Test: ' . $curl_response);} 

curl_close($curl); 

私は次のようなエラーになっています:

error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure 

を私は認証トークンを検証してきた私が使用していますが、今日行われ(私は私のアプリを登録したときに私に発行されるものです)。

何か不足していますか?質問と回答のほとんどは、SurveyMonkey APIのV2を扱っています。私はV3を使用しています。

ありがとうございました!

+0

問題は、それがあなたのトークンか何かではないように見える、TLSエラーのように見え、あなたのサーバがサポートされている暗号を持っていることを確認してください。 SurveyMonkeyがサポートしているものはhttps://www.sslllls.com/ssltest/analyze.html?d=api.surveymonkey.net&lestestでご覧になれます。 *テスト*のために、本当に必要な場合はおそらくハンドシェイク検証を無効にすることができます。 –

+0

ありがとう!私はあなたが正しいと信じています。それが働いているとき、私は解決策を投稿し、あなたに信用を与えるでしょう... – dneimeier

+0

喜びはありません。私はOpenSSL v 0.9.8cとTLS1.0を使用しています。アップグレードは必要ですか? – dneimeier

答えて

0

このエラーが特定のエラーに役立つかどうかはわかりませんが、このAPIラッパーを試してみましたか? https://github.com/ghassani/surveymonkey-v3-api-php

かなり自分のタスクを単純化し、このAPIのラッパー:

<?php 

// Init the client. 
$client = Spliced\SurveyMonkey\Client(MY_CLIENT_ID, MY_ACCESS_TOKEN); 

// Get a specific survey. 
$survey = $client->getSurvey(MY_SURVEY_ID); 

// Get all responses for this survey. 
/** @var Spliced\SurveyMonkey\Response $responses */ 
$responses = $client->getSurveyResponses(MY_SURVEY_ID); 

// Get a specific response. 
/** @var Spliced\SurveyMonkey\Response $response */ 
$response = $client->getSurveyResponse(MY_SURVEY_ID, RESPONSE_ID, TRUE); 

/* etc... */ 
関連する問題