2016-04-01 10 views
1

Ich benutze das folgende Beispiel und bekomme immer eine Antwort vom Server von 100. Das Bild wird in Square überhaupt nicht aktualisiert.Square Connect API - Bildupload - Antwort 100

Gefunden von: Square Connect API - image upload - Empty Reply From Server code 52 error

https://gist.github.com/tdeck/7118c7128a4a2b653d11

POST https://connect.squareup.com/v1/XXXXXX/items/XXXXXXX/image mit Status 100

ich dein Beispiel genau hier bin mit (locationa und Artikel-ID ausgeblendet) sind die Variablen, die ich das Senden bin dazu: Das kommt von einer Wordpress-Installation.

uploadItemImage( 
'https://connect.squareup.com/v1/XXXXX/items/XXXXX/image', 
'XXXXXXXXXXX', 
'wp-content/uploads/2015/04/imagename.jpg' 
) 

);

Hier ist die Curl-Ausgabe, die ich mit dem JPEG in Item ID und Token hinzugefügt bekommen verdunkelt bekommen. Das hochgeladene Bild ist um einiges größer als 209 Byte. Aber das ist alles, was gesendet wird.

[url] => https://connect.squareup.com/v1/me/items/ITEMID/image 
[content_type] => 
[http_code] => 100 
[header_size] => 71 
[request_size] => 288 
[filetime] => -1 
[ssl_verify_result] => 0 
[redirect_count] => 0 
[total_time] => 61.486827 
[namelookup_time] => 0.114398 
[connect_time] => 0.225888 
[pretransfer_time] => 1.347979 
[size_upload] => 209 
[size_download] => 0 
[speed_download] => 0 
[speed_upload] => 3 
[download_content_length] => -1 
[upload_content_length] => 209 
[starttransfer_time] => 1.396955 
[redirect_time] => 0 
[redirect_url] => 
[primary_ip] => 74.122.189.136 
[certinfo] => Array 
    (
    ) 

[primary_port] => 443 
[local_ip] => 192.168.1.117 
[local_port] => 60968 
[request_header] => POST /v1/me/items/ITEMID/image HTTP/1.1 
Host: connect.squareup.com 
Accept: */* 
Authorization: Bearer TOKEN 
Content-Length: 209 
Expect: 100-continue 
Content-Type: multipart/form-data; boundary=------------------------754042306466c83e 
+0

Wie groß ist das Bild, das Sie hochladen möchten? – Troy

+0

Ich habe alle verschiedenen Größen versucht. Es ist ungefähr 10kb, aber bis zu 60kb 150x150 oder 750 x 750px – Prana

Antwort

0

Es sieht so aus, als ob eine Mime-Type-Prüfung zur API hinzugefügt wurde, seit ich diesen Beispielcode geschrieben habe. Um den Inhaltstyp-Header an den Bildteil des mehrteiliger Anfrage hinzuzufügen, müssen Sie

curl_setopt($ch, CURLOPT_POSTFIELDS, ['image_data' => "@$image_file"]); 

zu

curl_setopt($ch, CURLOPT_POSTFIELDS, ['image_data' => "@$image_file;type=image/jpeg"]); 

Nach dem Versuch, dies ändern, ist es für mich gearbeitet. Ich werde meinen Kern aktualisieren, um dies zu reflektieren.

+0

Hallo Troy, Danke für die Antwort, aktualisiert den Code und immer noch die 100 weiterhin Problem. Ich habe die Frage mit der Curl-Ausgabe aufgeworfen. – Prana

+0

Ich habe ein paar verschiedene Dinge mit diesem Code versucht und konnte das Problem, das Sie haben, nicht reproduzieren. Wenn Sie versuchen, PHP auf Ihrem lokalen Rechner auszuführen, haben Sie das gleiche Problem? Vielleicht ist es ein seltsamer Fehler in einer alten Version von PHP auf Ihrem Host? – Troy

+0

Ich habe es auf ein paar verschiedenen Maschinen verwendet. PHP-Version 5.6 oder höher. Sehr seltsames Problem. Könnte es sein, wie ich mich mit dem Bild verbinde? Benötigen Sie den absoluten Serverpfad, um zu arbeiten? Ich habe relativ verwendet. – Prana

Verwandte Themen