Vamos paso a paso aquí. Parece que está tratando de usar OAuth solo para la autenticación, pero antes de poder hacerlo necesita obtener el token de acceso que se usará para autenticarse cuando realice sus llamadas a la API.
Debido a que está utilizando la versión 1 de OAuth, para obtener el token de acceso debe hacer lo siguiente:
- Primero, configure una aplicación, realice una llamada al sitio para obtener el token de solicitud (credenciales temporales) utilizando el ID de cliente y el secreto de la aplicación
- En segundo lugar, realice una llamada al sitio para autorizar la aplicación con el token de solicitud desde el primer paso (frente al usuario, consulte a continuación).
- Tercero, después de que se haya completado la autorización, debe hacer una llamada al sitio para obtener el token de acceso (ahora que la aplicación ha sido autorizada)
Recomiendo usar Postman para los primeros pasos, ya que solo deben completarse una vez. Postman también se encargará de generar el timestamp
, nonce
y oauth signature
, por lo tanto, si no está utilizando una biblioteca OAuth, entonces absolutamente debe usar Postman. Una vez que tenga su Token de acceso , puede hacer las llamadas a través de CURL sin ninguna biblioteca.
https://www.getpostman.com/
Primer paso (aplicación de configuración)
Instale el complemento WP OAuth 1, actívelo y luego pase al elemento del menú en Usuarios> Aplicaciones . Agregue una nueva aplicación, complete el nombre y la descripción. Para la devolución de llamada, ya sea la URL para redirigir al usuario (después de la autorización) o oop
para el flujo fuera de banda que redirigirá a una página interna que muestra el token verificador (en lugar de redirigir).
https://github.com/WP-API/OAuth1/blob/master/docs/basics/Registering.md
Para continuar con el segundo paso, se debe hacer una llamada a su sitio, utilizando el ID de cliente y el Secreto de cliente de la aplicación creada, para obtener credenciales temporales (Token de solicitud).
Abra Postman, cree una nueva llamada a http://website.com/oauth1/request
, haga clic en la pestaña Autorización, seleccione OAuth 1.0 del menú desplegable, ingrese la Clave de cliente, Secreto de cliente, configure el método de firma en HMAC-SHA1
, habilite agregar parámetros al encabezado, codifique oauth firma , luego haga clic en Actualizar solicitud
Postman generará automáticamente la firma, el nonce y la marca de tiempo para usted, y los agregará al encabezado (puede verlos en la pestaña Encabezados).
Haga clic en Enviar y debería obtener una respuesta que incluya oauth_token
y oauth_token_secret
:
Estos valores se utilizarán en el siguiente paso para autorizar la aplicación en su cuenta de usuario de WordPress.
Segundo paso (autorizar la solicitud)
El paso de autorización solo debe completarse una vez, este paso está orientado al usuario y el que todos conocen. Este paso es obligatorio porque está utilizando OAuth1 y la aplicación debe estar asociada a una cuenta de usuario de WordPress. Piense en cuándo un sitio le permite iniciar sesión con Facebook ... lo dirigen a Facebook donde inicia sesión y hace clic en "Autorizar" ... esto debe hacerse, solo a través de su sitio de WordPress.
Recomiendo usar su navegador web para este paso, ya que puede configurar fácilmente las variables en URL, y esto proporciona la página "Autorizar" para autorizar la aplicación.
Abra su navegador web y escriba la URL de su sitio, así:
http://website.com/oauth1/authorize
Ahora agregue a esta URL, oauth_consumer_key
(ID de cliente) oauth_token
y oauth_token_secret
(del paso anterior). En mi ejemplo, esta es la URL completa:
http://website.com/oauth1/authorize?oauth_consumer_key=TUPFNj1ZTd8u&oauth_token=J98cN81p01aqSdFd9rjkHZWI&oauth_token_secret=RkrMhw8YzXQljyh99BrNHmP7phryUvZgVObpmJtos3QExG1O
Una vez que haga clic en Autorizar, obtendrá otra pantalla con el token de verificación. En mi ejemplo, este es el token de verificación devueltoE0JnxjjYxc32fMr2AF0uWsZm
Tercer paso (obtener token de acceso)
Ahora que hemos autorizado la aplicación, tenemos que hacer una última llamada para obtener el token de autorización que se utilizará para hacer todas sus llamadas API. Al igual que en el primer paso, usaré Postman (porque se requiere que la firma sea HMAC-SHA1), y hace que sea 100 veces más fácil completar estos pasos.
Abra Postman nuevamente y cambie la URL a http://website.com/oauth1/access
Asegúrese de agregar el token y el token secreto (valores del primer paso), luego haga clic en Parámetros para mostrar los cuadros debajo de la URL. A la izquierda, escriba oauth_verifier y a la derecha, ingrese el código del segundo paso, el token de verificación
Asegúrese de hacer clic en Solicitud de actualización, luego haga clic en Enviar, y debería recibir una respuesta oauth_token
y oauth_token_secret
... ¡esto es lo que necesita para hacer sus llamadas a la API! Deseche los originales del paso 1, guárdelos en su código o en otro lugar seguro.
Luego puede hacer una llamada API a su sitio, configurando los encabezados con el token devuelto y el token secreto.
Puede pasar esto de varias maneras, a través del encabezado de autorización, en los parámetros GET o POST (si está codificado como application / x-www-form-urlencoded). Tenga en cuenta que DEBE pasar la firma, la marca de tiempo y el nonce. No me di cuenta de cuánto tiempo me llevaría esta respuesta, así que lo actualizaré mañana con un ejemplo sobre cómo hacerlo con su código.
Recomiendo instalar el registro Rest API para que pueda ver el registro de las llamadas API y ver lo que se envió, devolvió, etc. Esto ayudará enormemente a la depuración.
https://github.com/petenelson/wp-rest-api-log