Ich mache ein Skript von einem Cronjob ausgeführt werden.GET Json mit Authentifizierung API-Schlüssel
Es wird angenommen, um einige Json Bestellungen zu holen und zu verarbeiten.
Mein Skript im Moment wie folgt aussieht:
$json_string = '/admin/orders/7109.json';
$real_url = "https://my-store.myshopify.com{$json_string}";
$user = 'my-user';
$pass = 'my-pass';
$ch = curl_init($real_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_USERPWD, $user . ':' . $pass);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json'));
$result = json_decode(curl_exec($ch),true);
curl_close($ch);
file_put_contents(__DIR__ . '/../debug/tracker_test.txt', print_r($result,true));
ich dies in den Code-Datei geschrieben bekommen sogar tho meine Anmeldeinformationen korrekt sind.
Array
(
[errors] => [API] Invalid API key or access token (unrecognized login or wrong password)
)
Fehle ich etwas?
Edit: Im privaten Apps Abschnitt Shopify es ein Beispiel-URL-Format gibt:
https://apikey:[email protected]/admin/resource.json
So, jetzt das Skript sieht wie folgt aus:
$json_url = 'https://my-api-key:[email protected]/admin/orders.json';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $real_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json'));
$result = json_decode(curl_exec($ch), true);
curl_close($ch);
aber ich bin noch immer die gleiche Error.
gut aussieht, würde ich sagen .. versuchen, den Benutzernamen und das Passwort wie folgt an: „$ username: $ password“ und die URL wie folgt senden: curl_setopt ($ ch, CURLOPT_URL, $ url); – dquinonez
Du meinst '" {$ username}: {$ password} "'? – Onilol
Versuchen Sie außerdem, die Ausgabe von curl_exec ($ ch) zuerst in eine Variable zu bringen und dann diese Variable zu codieren. Eine andere Sache könnte sein, dass du vielleicht auch eine Art Token senden musst. wie hier http://stackoverflow.com/questions/30426047/correct-way-to-set-bearer-token-with-curl – dquinonez