Funktionierender DeisgnUpload php

Ich habe jetzt alle Beispiele im Forum durchversucht, ein Design per php mit curl hochzuladen und hatte bei jeder Version zahlreiche Probleme.

Gibt es eine funktionierende Version?

Hi Nachbar (Sternschanze Hamburg) ;),

Gehts um den neuen Partnerbereich? Hast du auch die Hinweise zum neuen Partnerbereich und der neuen Api gelesen?

Alter Partnerbereich:


PHP:

Gruß
Thimo

Eigentlich Winterhude :wink: Keine Ahnung ob ich den neuen oder alten partnerbereich habe. Mein Account ist schon sehr alt.

Jedenfalls bekomme ich bei der zweiten Anfrage ja die ImageUrl, an die man die Bilddaten senden soll.

Nach dem Upload (Schritt 3) ist darin auch ein Bild zu finden (z. B. https://image.spreadshirtmedia.net/image-server/v1/designs/154222600). Allerdings landet es irgendwo im Nirvana und ist danach nicht mehr zu sehen.

Checke mal bitte, ob alt oder neu:

alt! Und ich brauche mindestens 10 Zeichen, um diesen post abzusenden…

Ok, kannst du einen Pastebin machen? Dann ist es einfacher.

https://pastebin.com/t2jH8HaD

Anlegen solltest du nicht bei
$url = "https://api.spreadshirt.net/api/v1/shops/40000/designs";

sondern eher
$url = "https://api.spreadshirt.net/api/v1/users/DEINE-USER-ID/designs";

Das sollte das Hauptproblem sein.

P.s.:
Falls du möchtest, schreibe mich privat an, habe für den alten Partnerbereich ein recht erfolgreiches, oft genutztes und getestetes Tool zum Upload, Übersetzung, Produkterstellung und Veröffentlichung in PHP :slight_smile:

2 Likes

DEINE-USER-ID ist deine Benutzer-Id - die Nummer

Session anlegen und dann so übergeben

function createSprdAuthHeader($method, $url, $api_key, $api_secret, $session = '')
{
    $apiKey = $api_key;
    $secret = $api_secret;
    $time = time() * 1000;

    $data = "$method $url $time";
    $sig = sha1("$data $secret");

    return "Authorization: SprdAuth apiKey=\"$apiKey\", data=\"$data\", sig=\"$sig\"".(!empty($session) ? ", sessionId=\"$session\"" : '');
}

$session kommt dann von hier:

# Partial Sourcecode for Login to Spreadshirt API v1
$email = "EMAIL"; # login email address
$password = "PASSWORD"; # login password
 
// 0. Login to api
$loginURL = "https://api.spreadshirt.net/api/v1/sessions";
$loginXML = "<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
<login xmlns:xlink='http://www.w3.org/1999/xlink' xmlns='http://api.spreadshirt.net'>
  <username>$email</username>
  <password>$password</password>
</login>";
 
$header = array();
$header[] = "Content-Type: application/xml";
 
echo "Login to $loginURL ".PHP_EOL;//.$result . ''.PHP_EOL;
$ch = curl_init($loginURL);
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $loginXML);
$result = curl_exec($ch);
curl_close($ch);
echo "  -> ".parseHttpHeaders($result, "HTTP").PHP_EOL;
 
$session = substr(parseHttpHeaders($result, "Location"), 44);

siehe auch: https://pastebin.com/zs2Rh9aL

Wie gesagt, hab schon etwas fertiges, was besser strukturiert ist als die Sampels :wink: