Ho ottenuto questo risultato e illustrerò come l'ho fatto.
Sto utilizzando il Postman application per testare e perfezionare le chiamate API. Consiglio vivamente di usare questo. Una volta che hai funzionato, puoi esportare in PHP Curl (o qualsiasi altra cosa tu abbia bisogno).
If you use Postman you can view my API calls using this shared link.
Per la Prima chiamata si hanno problemi con Ho le seguenti impostazioni
primo luogo, ho fatto in modo mio URL endpoint era:
{{url}}/oauth1/request
ho impostato il mio API Chiama a PUSH e my AuthType a OAuth 1.0
Ho aggiunto il mio consumer_key e consumer_sec Ret che ho creato nel Backend WP> Utenti> Applicazioni (questo viene aggiunto con il plugin OAuth).
firma del metodo - HSAC-SHA1
Poi postino aggiornerà questo e dinamicamente creare il Nonce, timestamp e versione.
ho impostato il mio regno come 'Esempio'
ho poi fatto in modo che ho attivato le opzioni: - Aggiungi Parametri di intestazione - Aggiungi params vuoti a firma
Ecco ciò che ho per il mio params:
realm="Example",oauth_consumer_key="AdPuqyWrAQQc",oauth_signature_method="HMAC-SHA1",oauth_timestamp="1470248765",oauth_nonce="dnOTvG",oauth_version="1.0",oauth_signature="gUahTX2hfV1lqZCfMUvHtLLoauI%3D"
Questo mi dà il seguente risultato:
oauth_token=xbTb4E93K6pP2tcg4qGJIYgl&oauth_token_secret=qWo01WL2ish205yvjiU8qyCkKVPMNUvSbKpFBB1T1oOuOtBc&oauth_callback_confirmed=true
posso usare postino esportare questa chiamata API a una funzione cURL e se così ottengo il seguente:
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "http://mydomain.dev/oauth1/request",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"oauth_consumer_key\"\r\n\r\nAdPuqyWrAQQc\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"oauth_token\"\r\n\r\n\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"oauth_signature_method\"\r\n\r\nHMAC-SHA1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"oauth_timestamp\"\r\n\r\n1470241356\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"oauth_nonce\"\r\n\r\n7VKp4N\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"oauth_version\"\r\n\r\n1.0\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"oauth_signature\"\r\n\r\n9qRrIkDxt56S9Ikf061eFOVLAdA%3D\r\n-----011000010111000001101001--",
CURLOPT_HTTPHEADER => array(
"authorization: OAuth realm=\"Example\",oauth_consumer_key=\"AdPuqyWrAQQc\",oauth_signature_method=\"HMAC-SHA1\",oauth_timestamp=\"1470248765\",oauth_nonce=\"dnOTvG\",oauth_version=\"1.0\",oauth_signature=\"gUahTX2hfV1lqZCfMUvHtLLoauI%3D\"",
"cache-control: no-cache",
"content-type: multipart/form-data; boundary=---011000010111000001101001",
"postman-token: dd85258e-a72a-b731-82d1-00109e30962f"
),
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo 'response ' . $response;
$a = parse_str($response);
echo 'token ' . $oauth_token;
echo '<br>';
echo 'secret '. $oauth_token_secret;
}
Questo passaggio 1 di 3 fasi per l'autenticazione OAuth. Sto appena iniziando il mio viaggio per connetterli tutti. Non c'è molta documentazione là fuori e non molti esempi.
Il passaggio 2 si presenta come una chiamata a/oauth1/autorizzazione con il token e il segreto forniti. Sembra che richieda un login utente e un nuovo token (e permenant) e il segreto sia creato.
Fase 3 si presenta come una chiamata a/OAuth1/accesso
non ho avuto successo passaggi 2 e 3 per collegare tra loro in modo corretto, ma ho pensato di inviare per aiutare con la query originale sulla primo passo non restituire i gettoni corretti
This article è uno dei migliori là fuori spiegano come utilizzare WP-API e OAuth.
Puoi fornire alcuni esempi di codice che hai già provato? La tua configurazione OAuth accetta le richieste POST? La tua configurazione è accessibile da altri per provare? – dafyk