2017-12-14 7 views
0

Ich versuche, eine Verbindung zur Smart-Sheets-API mit PHP/cURL herzustellen.PHP-Fehler: Unbekannt SSL-Protokollfehler in Verbindung mit api.smartsheet.com:443

<?php 

$ch = curl_init(); 

curl_setopt($ch, CURLOPT_URL, "https://api.smartsheet.com/2.0/sheets/xxxxxxxxx/rows"); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_SSLVERSION, 3); 

curl_setopt($ch, CURLOPT_POSTFIELDS, 
     "[{\"toTop\":true, \"cells\": [ " 
     . "{\"columnId\": xxxxxxxx, \"value\": description}," 
     . "{\"columnId\": xxxxxxxx, \"value\": amount}," 
     . "{\"columnId\": xxxxxxxx, \"value\": po}," 
     . "{\"columnId\": xxxxxxxx, \"value\": wo}," 
     . "{\"columnId\": xxxxxxxx, \"value\": contractor}," 
     . "{\"columnId\": xxxxxxxx, \"value\": vendorcode}," 
     . "{\"columnID\": xxxxxxxx, \"value\": notes}]"); 

curl_setopt($ch, CURLOPT_POST, 1); 

$headers = array(); 
$headers[] = "Authorization: Bearer xxxxxxxx"; 
$headers[] = "Content-Type: application/json"; 
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); 

$result = curl_exec($ch); 
if (curl_errno($ch)) { 
    echo 'Error:' . curl_error($ch); 
} 
curl_close ($ch); 

?> 

Aus irgendeinem Grund Fehler

Unbekannt SSL-Protokoll in Verbindung

Ich habe api.smartsheet.com:443 jedes Mal, es läuft ich folgende Fehlermeldung erhalten versucht, um die SSL_Version zu ändern aber das behebt das Problem auch nicht. Ich weiß, dass alle meine Zahlen (Token, Sheenum, Collumnum) korrekt sind. Ich habe versucht, andere Lösungen von Leuten durchzugehen, die mit anderen APIs arbeiteten, aber immer noch nicht die Antwort finden konnten. Hat jemand irgendwelche Ideen, wie man das beheben kann?

Danke, Joshua

+0

Haben Sie Folgendes überprüft? http://blog.techstacks.com/2010/03/3-common-causes-of-unknown-ssl-protocol-errors-with-curl.html – Zak

+0

Ich bin gerade durchgegangen und ich kann immer noch nicht finden, das Problem zu lokalisieren . Dies ist das erste Mal, dass ich mit cURL arbeite, daher sind mir einige der Protokolle fremd. Danke aber –

Antwort

0

curl_setopt($ch, CURLOPT_SSLVERSION, 3);

Dies erzwingt SSLv3, ein Protokoll, das seit einiger Zeit aus Sicherheitsgründen verworfen wird. Und, looking at the configuration of the server unterstützt es SSLv3 nicht, das den meisten anderen Servern ähnlich ist.

Ich empfehle, diese Zeile einfach zu entfernen und cur wählen Sie die beste Version von selbst.

I have tried to change around the SSL_Version but that doesn't fix the problem either.

Es kann nicht das Problem beheben, dass Sie nicht die erwartete Antwort vom Server erhalten. Möglicherweise wird das spezifische SSL-Problem entfernt, mit dem Sie konfrontiert sind, damit Sie mit anderen Problemen fortfahren können, die Ihr Code möglicherweise hat. Sehen Sie sich genau die Fehlermeldungen an, die sich ändern können.

+0

Zunächst einmal, Vielen Dank für Ihre Antwort. Zweitens habe ich versucht, es herauszuziehen, aber das Problem blieb bestehen. Also habe ich versucht, die Locke zu zwingen, TLSv1.2 zu verwenden, wie in dem von Ihnen angegebenen Link angegeben. Irgendwelche anderen Ideen, wie man es repariert? Es wird nicht mit einer Fehlernummer antworten, nur der Fehler –

+0

@JoshuaAverbuch: Bekommst du jedes Mal genau den gleichen Fehler von * Unbekanntem SSL-Protokollfehler *? Können Sie die Konfiguration Ihrer Umgebung angeben, z. B. curl-Version und openssl-Version (falls curl mit openssl-Bindungen verwendet wird). Unter https://secure.php.net/manual/en/function.curl-version.php erfahren Sie, wie Sie diese Informationen erhalten. –

+0

version_number 462597 Version 2 ssl_version_number 1597 ssl_version 0 libz_version 7.15.5 host i386-redhat-linux-gnu alter OpenSSL/0.9.8b features 1.2.3 protokolle Array –