Änderung der API-Benutzung

Hallo,

in eurem Blog ist zu lesen das sich die Nutzung der API ändert:

Ich habe dazu das Tutorial gelesen, aber es hilft mir nicht bzw. verstehe ich es nicht?!

https://developer.spreadshirt.net/display/API/Security#Security-RequestwithAuthenticationInfoinHeader

Es wäre sehr nett, wenn mir einer von euch sagen oder schreiben kann wie ich den Authorization-Header in Wordpress einbinde.

Danke und entspannte Feiertage für euch alle!

Hi,

nutzt du ein Plugin oder hast du etwas selbst entwickeltes?

Gruß
Thimo

Hallo Thimo,

super das du dich meldest! Ich wollte dir eine private Nachricht senden aber das geht in diesem Forum nicht mehr?! EDIT: Mir wurde gerade die private Nachrichten-Funktion freigeschaltet.

Weder ein plugin noch etwas selbst entwickeltes. Ich habe den Sketcho, Smarto per github in Wordpress eingebunden nach diesem Tutorial:

Ich nutze die API um zum Beispiel Farben, oder Produkte von Spread abzurufen, Beispiel:

https://image.spreadshirtmedia.net/image-server/v1/appearances/20,width=20

Wenn ich das richtig verstehe (Spread Blog / API), dann muß man ab 2018 den Authorization-Header nutzen. Ich habe keinen Plan wo oder wie ich das in Wordpress einfüge?!

Das habe ich bei github gefunden, aber ehrlich gesagt weiß ich nicht ob es das richtige und wenn ja wohin damit?:

SpreadshirtClient.api_key = “…”
SpreadshirtClient.api_secret = “…”
SpreadshirtClient.base_url = “https://api.spreadshirt.net/api/v1” # optional
SpreadshirtClient.timeout = 5 # optional (default: 30)

Ich weiß das du API technisch absolut fit bist! Kannst mir einen Hinweis geben oder in “ein oder zwei Worte” schreiben wie und wo ich den Authorization-Header in Wordpress verwende oder einfüge?

Grüße

Danke für die Blumen!

Würdest du nicht bereits etwas einsetzen hätte ich dir ein Plugin empfohlen, dann brauchst du dich darum nicht kümmern.

Wie sieht denn dein Skript aus, womit du die Farben von Sprd abrufst? Und welche Sprache nutzt du? (JavaScript/php?)

Der tablomat alleine braucht keinen Auth Header, denke ich, daher können wir beim Abruf ansetzen.

Gruß
Thimo

Ps alternativ PN :wink:

1 Like

Falls jemand ähnliche Bedenken haben sollte:
Es sollten meines Wissens nach, nur Abfragen über api.spreadshirt.net bzw. api.spreadshirt.com davon betroffen sein. Abrufe über image.spreadshirtmedia.net oder dergleichen sollten es nicht. (Denn müssten sich Google Bots usw. auch vorher authentifizieren.)

1 Like

Wenn ich das richtig verstehe, ändert sich für Shops nicht viel, ich glaube es reicht, wenn man an die Abfrage Url den API Key ranhängt. Spreadshirt empfiehlt das zwar nicht:

Diese Variante werden wir zwar weiter unterstützen, empfehlen sie aber nicht mehr.

Ich nutze folgendes(einfach für Produkte): https://github.com/spreadshirt/spreadshirtapps/blob/master/php/samples/src/designlisting.php
Gibt es evt. ein Beispiel wie man das sauber anpassen kann?

Ich habs versucht und irgendwie hats nichts übernommen:

curl_setopt($ch,CURLOPT_HTTPHEADER, array(‘Authorization: SprdAuth apiKey=”1-2-3-4-”’, ‘User-Agent: topseller/ 1.00 (https://domain.ch; info@domain.ch’));

Ich hatte es auch mit CURLOPT_POST und CURLOPT_POSTFIELDS versucht mit dem gleichen Ergebnis. Wenn ich mit var_dump(curl_getinfo($ch)); die Daten anzeige ist da nichts von mir zu sehen.

Solange Spreadshirt sich nicht äußert bleibe ich bei der Meinung, das nicht einmal der API Key angegeben werden muss, denn, wie gesagt, handelt es sich nur um Bilder, die über die URL abgerufen werden. Greift man auf api.spreadshirt.net oder api.spreadshirt.com zu, sieht es anders aus.
Bitte nicht verwechseln, ihr habt unterschiedliche Use-Cases. Bei dir geht es tatsächlich um die Nutzung der API.

Also einfach per URL Bilder Abfragen, sollte kein Problem sein - sonst würden Google und andere Bots nicht funktionieren.
Ps. Den API Key würde ich persönlich nicht öffentlich machen, also auch nicht an die URL hängen.


Zum Thema API Upload/Authentifizierung hatte ich im alten Forum etwas:

Your sample, working again (png):
<?php$session = "XXXXX"; // replace with a valid session$apiKey = "XXXXX" - Pastebin.com

Sample with svg only:
<?php$session = "XXXXX";$apiKey = "XXXXX";$secret = "XXXXX";$useragent - Pastebin.com

In meinen Pastebins findest du folgenden Part:

$header = array();
$header[] = createSprdAuthHeader("GET", $dataUrl);

In der Funktion createSprdAuthHeader wird die Authentifizierung durchgeführt.
Diesen Header nimmst du für weitere Anfragen mit:

curl_setopt($ch, CURLOPT_HTTPHEADER, $header);

Es sollte nicht vergessen werden den Useragent mit zu übernehmen:

curl_setopt($ch, CURLOPT_USERAGENT, $useragent);

Folgendes sollte für 2018 klappen:
Bin mit gerade wegen der SessionId nicht so sicher, also falls es ab Januar nicht klappt, einfach noch mal melden

https://github.com/spreadshirt/spreadshirtapps/blob/master/php/samples/src/designlisting.php (alt) aktualisiert → spreadshirt design listing - Pastebin.com (neu)

Ps. Den API Key würde ich persönlich nicht öffentlich machen, also auch nicht an die URL hängen.

Das hatte ich auf die Api bezogen und nicht auf die Bilder. Da sieht das ja niemand wenn das im script an die url angehängt ist…

Folgendes sollte für 2018 klappen:
Bin mit gerade wegen der SessionId nicht so sicher, also falls es ab Januar nicht klappt, einfach noch mal melden…

Vielen Dank! Werde das dann mal so versuchen. Ich glaube die SessionId brauchts für reine Abfragen gar nicht…

1 Like