Wie für die Verwendung von oAuth mit Saufen, 5 (oder, besser, mit Saufen, 6)

Ich versuche zu verbinden, um die WooCommerce API mit Saufen, 5 (Saufen, 6 scheint nicht der Fall hat oAuth-Optionen o.O). Woocommerce erfordert die oAuth-Authentifizierung-Methode zu arbeiten.

Dies ist der code den ich verwende:

<?php

/**
 * Example of usage of Guzzle 5 to get information
 * from a WooCommerce Store.
 */

require('../vendor/autoload.php');

use GuzzleHttp\Client;
use GuzzleHttp\Subscriber\Oauth\Oauth1;
use GuzzleHttp\Exception\RequestException;

$consumer_key = 'my_consumer_key'; //Add your own Consumer Key here
$consumer_secret = 'my_consumer_secret'; //Add your own Consumer Secret here
$store_url = 'http://example.com'; //Add the home URL to the store you want to connect to here
$api_path = '/wc-api/v2/';
$api_end_point = [
    'root' => '',
    'orders' => 'orders'
    ];

$base_uri = $store_url . $api_path;

$client = new Client([
    'base_url' => $base_uri,
    'defaults' => ['auth' => 'oauth']
    ]);

$oauth = new Oauth1([
    'consumer_key'    => $consumer_key,
    'consumer_secret' => $consumer_secret,
    'request_method'  => 'query'
]);

$client->getEmitter()->attach($oauth);

try
{
    $res = $client->get($api_end_point['orders']);
}
catch (RequestException $e)
{
    $res = $e;

    if ($e->hasResponse())
    {
        $res = $e->getResponse();
    }
}

print_r($res);

echo $res->getStatusCode();
//"200"
echo $res->getHeader('content-type');
//'application/json; charset=utf8'
echo $res->getBody();
//{"type":"User"...'

Dieser code gibt eine

woocommerce_api_authentication_error: Ungültige Signatur - zur Verfügung gestellt
die Signatur stimmt nicht überein

Verwendung von reinem curl-Funktionen (mit dieses Paket, in dem ich einige Funktionen, die ich gefunden hier), stattdessen, es funktioniert und ich bekomme alle Aufträge und andere Daten, die ich will.

EINIGE ANDERE DETAILS

Verwenden, Saufen, 5 und oAuth verwende ich den composer-Pakete:

"require": {
    "guzzlehttp/guzzle": "~5.0"
},
"require-dev": {
    "guzzlehttp/oauth-subscriber": "~0.2",
},

Es scheint, gibt es einige Dinge, die anders sind in die Erstellung der Signatur: bei die Bibliothek, die ich verwendet habe, bis jetzt funktioniert, aber bei den oAuth-plugin (mit der Methode getSignature()) für Saufen nicht und ich bin nicht so verwendet werden, um die Verwendung von oAuth, um den Fehler zu finden. Gibt es jemanden der mir helfen kann das problem zu identifizieren?

InformationsquelleAutor Aerendir | 2015-07-16
Schreibe einen Kommentar