Ich versuche mich an einer eBay-API in PHP. Letztendlich soll das .php folgendes können:
1. Alle meine Artikel anzeigen, welche ich bei eBay gelistet habe.
2. Wie kann ich mir alle Artikel als csv downloaden? Die Datei soll mehr Infos zu den Artikeln enthalten als ein eBay-CSV Manager. (siehe Code Block 1)
3. Wie kann ich mit Hilfe der API die Versandkosten bei Artikeln mit Versandkosten i.H.v. 4,99 EUR auf 5,99 EUR erhöhen? (siehe Code Block 2)
FYI: Ich rufe die php-Datei nur über den Browser ohne eine SDK oder einer IDE ab.
Problem:
Die Ausgabe ist entweder ein weißer Bildschirm oder ein Syntaxfehler ( ' . $data['userToken'] . ' '220705951941' '; ** Ende des Tests **/ while ($main = mysqli_fetch_object($sql_main)) { $requestXmlBody_item = ' ' . $data['userToken'] . ' ' . $main->artikelNr . ' '; //build eBay headers using variables passed via constructor //initialise a CURL session $connection_item = curl_init(); curl_setopt($connection_item, CURLOPT_URL, ...)
Ich wäre für jede Hilfe sehr dankbar.
Folgend mein Code:
<?php
//***** Code-Block 1 *****
/*
List all my articles
*/
require_once('../../../func/central_test.php');
require_once('../../../db/intranet.php');
ini_set('max_execution_time', 9000);
$data_item['verb'] = "GetItemRequest";
$data['devID'] = "AAAA-AAAA-AAAA-AAAA";
$data['appID'] = "BBBB-BBBB-BBBB-BBBB";
$data['certID'] = "CCCC-CCCC-CCCC-CCCC";
$data['serverUrl'] = "https://api.ebay.com/ws/api.dll";
$data['userToken'] = "DDDD**DDDD**DDDD**DDDD";
$data['username'] = "EEE";
$data['siteID'] = 77;
$headers_item = array(
//Regulates versioning of the XML interface for the API
"X-EBAY-API-COMPATIBILITY-LEVEL: 967",
//set the keys
"X-EBAY-API-DEV-NAME: " . $data['devID'],
"X-EBAY-API-APP-NAME: " . $data['appID'],
"X-EBAY-API-CERT-NAME: " . $data['certID'],
"X-EBAY-API-CALL-NAME: " . $data_item['verb'],
"X-EBAY-API-SITEID: " . $data['siteID']
);
$sql_main = mysqli_query($connection, "SELECT Artikelnummer as artikelNr FROM nr_ebay_angebote WHERE up_kat = '1' AND disable = '0'");
/** Test mit einem Beispiel-Artikel **
$requestXmlBody_item = '<?xml version="1.0" encoding="utf-8"?>
<GetItemRequest xmlns="urn:ebay:apis:eBLBaseComponents">
<RequesterCredentials>
<eBayAuthToken>' . $data['userToken'] . '</eBayAuthToken>
</RequesterCredentials>
<ItemID>'220705951941'</ItemID>
</GetItemRequest>';
** Ende des Tests **/
while ($main = mysqli_fetch_object($sql_main)) {
$requestXmlBody_item = '<?xml version="1.0" encoding="utf-8"?>
<GetItemRequest xmlns="urn:ebay:apis:eBLBaseComponents">
<RequesterCredentials>
<eBayAuthToken>' . $data['userToken'] . '</eBayAuthToken>
</RequesterCredentials>
<ItemID>' . $main->artikelNr . '</ItemID>
</GetItemRequest>';
//build eBay headers using variables passed via constructor
//initialise a CURL session
$connection_item = curl_init();
curl_setopt($connection_item, CURLOPT_URL, $data['serverUrl']);
//stop CURL from verifying the peer"s certificate
curl_setopt($connection_item, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($connection_item, CURLOPT_SSL_VERIFYHOST, 0);
//set the headers using the array of headers
curl_setopt($connection_item, CURLOPT_HTTPHEADER, $headers_item);
//set method as POST
curl_setopt($connection_item, CURLOPT_POST, 1);
//set the XML body of the request
curl_setopt($connection_item, CURLOPT_POSTFIELDS, $requestXmlBody_item);
//set it to return the transfer as a string from curl_exec
curl_setopt($connection_item, CURLOPT_RETURNTRANSFER, 1);
//Send the Request
$response = curl_exec($connection_item);
//Send the Request
$response = curl_exec($connection);
$responseXml = $response;
echo $responseXml;
//close the connection
curl_close($connection_item);
}
echo "End of request."
?>
<?php
//***** Code-Block 2 *****
/*
change the shipping cost from 4.99 to 5.99 EUR
*/
require_once('../../../func/central_test.php');
require_once('../../../db/intranet.php');
ini_set('max_execution_time', 9000);
$data_item['verb'] = "ShippingCostSummary";
$data['devID'] = "AAAA-AAAA-AAAA-AAAA";
$data['appID'] = "BBBB-BBBB-BBBB-BBBB";
$data['certID'] = "CCCC-CCCC-CCCC-CCCC";
$data['serverUrl'] = "https://api.ebay.com/ws/api.dll";
$data['userToken'] = "DDDD**DDDD**DDDD**DDDD";
$data['username'] = "EEE";
$data['siteID'] = 77;
$headers_item = array(
//Regulates versioning of the XML interface for the API
"X-EBAY-API-COMPATIBILITY-LEVEL: 967",
//set the keys
"X-EBAY-API-DEV-NAME: " . $data['devID'],
"X-EBAY-API-APP-NAME: " . $data['appID'],
"X-EBAY-API-CERT-NAME: " . $data['certID'],
"X-EBAY-API-CALL-NAME: " . $data_item['verb'],
"X-EBAY-API-SITEID: " . $data['siteID']
);
$sql_main = mysqli_query($connection, "SELECT Artikelnummer as artNumb FROM nr_ebay_angebote WHERE up_kat = '1' AND disable = '0'");
while ($main = mysqli_fetch_object($sql_main)) {
$requestXmlBody_item = '<?xml version="1.0" encoding="utf-8"?>
<ShippingCostSummary>
<ListedShippingServiceCost currencyID="CurrencyCodeType"> currentCost </ListedShippingServiceCost>
<ShippingServiceCost currencyID="CurrencyCodeType"> newShippingCost </ShippingServiceCost>
</ShippingCostSummary>;
//build eBay headers using variables passed via constructor
//initialise a CURL session
$connection_item = curl_init();
curl_setopt($connection_item, CURLOPT_URL, $data['serverUrl']);
//stop CURL from verifying the peer"s certificate
curl_setopt($connection_item, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($connection_item, CURLOPT_SSL_VERIFYHOST, 0);
//set the headers using the array of headers
curl_setopt($connection_item, CURLOPT_HTTPHEADER, $headers_item);
//set method as POST
curl_setopt($connection_item, CURLOPT_POST, 1);
//set the XML body of the request
curl_setopt($connection_item, CURLOPT_POSTFIELDS, $requestXmlBody_item);
//set it to return the transfer as a string from curl_exec
curl_setopt($connection_item, CURLOPT_RETURNTRANSFER, 1);
//Send the Request
$response = curl_exec($connection);
$responseXml = $response;
echo $responseXml;
if ($response->currentCost == 4.99) {
newShippingCost == 5.99;
}
}
?>
eBay-API mit PHP -
Re: eBay-API mit PHP -
Der in Klammern erwähnte Syntaxfehler erscheint nur, wenn du mit dem "Beispiel-Artikel" testest, oder? Das liegt an der ItemID. Statt '220705951941' muss 220705951941 rein.Maik_Koch hat geschrieben: ↑12. Jan 2019 20:27 Problem:
Die Ausgabe ist entweder ein weißer Bildschirm oder ein Syntaxfehler ( ' . $data['userToken'] . ' '220705951941' '; ** Ende des Tests **/ while ($main = mysqli_fetch_object($sql_main)) { $requestXmlBody_item = ' ' . $data['userToken'] . ' ' . $main->artikelNr . ' '; //build eBay headers using variables passed via constructor //initialise a CURL session $connection_item = curl_init(); curl_setopt($connection_item, CURLOPT_URL, ...)
Im Code Block 2 ist der Syntaxfehler dieser
Code: Alles auswählen
</ShippingCostSummary>;
Code: Alles auswählen
</ShippingCostSummary>';
Ein weiterer Fehler ist
Code: Alles auswählen
if ($response->currentCost == 4.99) {
newShippingCost == 5.99;
}
Code: Alles auswählen
if ($response->currentCost == 4.99) {
newShippingCost = 5.99;
}
Re: eBay-API mit PHP -
Vielen Dank für die Antwort und die Hinweise!
a) Bei dem Syntaxfehler habe ich die ' entfernt. Es kam immer noch die dieselbe Fehlermeldung: ' . $data['userToken'] . ' 220705951941 '; ** Ende des Tests **/ while ($main = mysqli_fetch_object($sql_main)) { $requestXmlBody_item = ' ' . $data['userToken'] . ' ' . $main->artikelNr . ' '; //build eBay headers using variables passed via constructor //initialise a CURL session $connection_item = curl_init(); curl_setopt($connection_item, CURLOPT_URL, $data['serverUrl']); //...
b) für die anderen Dinge habe ich mir Notepad++ installiert.
c) Der 1. Code-Block diente für mich nur zum Testen. Denn ich mir künftig alles im Intranet auslegen, ohne mich überall extra einzuloggen. Deshalb soll es wenn möglich ohne SDK oder IDE gehen. Doch leider klappen die einfachen Anfragen nicht und ich frage mich, wie eine simple Abfrage in php aussehen soll damit ich eine Auflistung meiner Artikel im Browser angezeigt bekomme?
a) Bei dem Syntaxfehler habe ich die ' entfernt. Es kam immer noch die dieselbe Fehlermeldung: ' . $data['userToken'] . ' 220705951941 '; ** Ende des Tests **/ while ($main = mysqli_fetch_object($sql_main)) { $requestXmlBody_item = ' ' . $data['userToken'] . ' ' . $main->artikelNr . ' '; //build eBay headers using variables passed via constructor //initialise a CURL session $connection_item = curl_init(); curl_setopt($connection_item, CURLOPT_URL, $data['serverUrl']); //...
b) für die anderen Dinge habe ich mir Notepad++ installiert.
c) Der 1. Code-Block diente für mich nur zum Testen. Denn ich mir künftig alles im Intranet auslegen, ohne mich überall extra einzuloggen. Deshalb soll es wenn möglich ohne SDK oder IDE gehen. Doch leider klappen die einfachen Anfragen nicht und ich frage mich, wie eine simple Abfrage in php aussehen soll damit ich eine Auflistung meiner Artikel im Browser angezeigt bekomme?
Re: eBay-API mit PHP -
zu a) Ich sehe keine Fehlermeldung. So wie ich das sehe, wird der Quellcode ausgegeben, sprich er parst den Teil nicht (mehr).
Mir kommt so ein Verdacht und es gibt ja keine dummen Frage: Welchen Webserver nutzt du zum Testen mit welcher php Version?
Mir kommt so ein Verdacht und es gibt ja keine dummen Frage: Welchen Webserver nutzt du zum Testen mit welcher php Version?
Re: eBay-API mit PHP -
Apache mit PHP/5.6.14
Die Frage war super und hat mit geholfen, dass die Syntaxfehler weg sind (y).
Habt ihr auch eine Idee dazu, warum mir sonst nichts weiter angezeigt wird bzw. wie ich mir auch diesem die Daten anzeigen/verändern kann?
Die Frage war super und hat mit geholfen, dass die Syntaxfehler weg sind (y).
Habt ihr auch eine Idee dazu, warum mir sonst nichts weiter angezeigt wird bzw. wie ich mir auch diesem die Daten anzeigen/verändern kann?
Re: eBay-API mit PHP -
Als ich mir deine Posts mehrmals durchgelesen habe, dämmerte es mir langsam. Und wie geschrieben, es war kein Fehler, auch kein Syntaxfehler.
Mach mal ein paar Einsteiger Tutorials zu PHP durch, um die Begrifflichkeiten zu lernen und zu verstehen, wie das ganze funktioniert, wie man Fehlersuche angeht, etc. Dann wird es dir auch leichter Fallen, die ganz einfachen Fehler zu finden.
-
- Beiträge: 22
- Registriert: 16. Jan 2019 19:05
- Land: Deutschland
Re: eBay-API mit PHP -
Code: Alles auswählen
$response->currentCost == 4.99
Re: eBay-API mit PHP -
Also ich nutze die Funktion http://developer.ebay.com/DevZone/XML/d ... lling.html zum Abruf unserer aktiven Angebote auf eBay. Da bekommt man ein XML zurück, aus welchem ich mir die von mir benötigten Felder in eine CSV-Datei schreibe.
-
- Information
-
Wer ist online?
Mitglieder in diesem Forum: 0 Mitglieder und 61 Gäste