PHP调用SurveyMonkey API V3时发生握手错误

PHP调用SurveyMonkey API V3时发生握手错误,php,api,handshake,surveymonkey,Php,Api,Handshake,Surveymonkey,我是REST新手,一直负责使用V3API检索SurveyMonkey调查数据。我正在使用PHP。我的代码如下: $fields = array( 'title'=>'New Admission Survey', 'object_ids' => array($surveyID)); $fieldsString = json_encode($fields); $curl = curl_init(); $requestHeaders = array( "Authorization" =

我是REST新手,一直负责使用V3API检索SurveyMonkey调查数据。我正在使用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);
我已经验证了我使用的身份验证令牌是我注册应用程序时发给我的令牌(今天完成)

我错过什么了吗?大多数问题和答案都涉及SurveyMonkey API的V2。我正在使用V3


谢谢你的帮助

我不确定这是否有助于解决您遇到的特定错误,但您是否尝试过使用此API包装器

此API包装器大大简化了我的任务:


问题似乎与您的令牌或任何东西无关,似乎是TLS错误,请确保您的服务器具有支持的密码。您可以在此处查看SurveyMonkey支持的内容:。对于测试,如果您确实需要,您可能可以禁用握手验证。谢谢!我相信你是对的。当它起作用时,我将发布解决方案并将其归功于您…没有乐趣。我使用的是OpenSSL V0.9.8c和TLS1.0。需要升级吗?为了清楚起见,我编辑了我的代码来设置以下内容:curl\u setopt($curl,CURLOPT\u SSLVERSION,4);curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,0);curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,0);--仍然收到相同的错误我不确定具体细节,但我认为您现在需要TLS1.2,或者至少使用上面链接中指定的受支持的密码。根据我发给你的链接,TLS 1.0/1.1支持的唯一密码是
TLS\u ECDHE\u RSA\u WITH\u AES\u 128\u CBC\u SHA
,但我不是SSL方面的专家。
error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure
<?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... */