Consulta de QuickBooks Online con filtro devuelve 401 cada vez

He tenido éxito creando objetos con POST y Content-Type application / xml

También he tenido éxito al realizar consultas utilizando la aplicación Content-Type / x-www-form-urlencoded con un cuerpo de solicitud en blanco que devuelve todo el tipo de objeto dependiendo de la URI que especifique.

También puedo hacer lo mismo para trabajar con algo como PageNum = 1 & ResultsPerPage = 1 en el cuerpo de la solicitud y he descubierto cómo incorporar eso en la firma para obtener una respuesta válida.

Sin embargo, no importa cómo lo formateo, no puedo obtener nada más que una respuesta 401 cuando intento usar un filtro (algo básico como Filter = FAMILYNAME: EQUALS: Doe). He leído las especificaciones de la revisión A de OAuth Core 1.0 sobre cómo se escapan todos los nombres y valores de los parámetros utilizando la codificación porcentual [RFC3986]. Sin embargo siento que me estoy perdiendo un paso o formateo incorrectamente. He visto información inconsistente en mi búsqueda en los foros de Intuit sobre cuál es exactamente el formato correcto.

Cualquier ayuda en esto sería apreciada grandemente He estado luchando con esto por una buena semana ahora.

La respuesta que obtengo al intentar usar un filtro es: Estado HTTP 401 - mensaje = Excepción que autentica OAuth; errorCode = 003200; statusCode = 401

----Actualizar----

Veo el mismo error cuando intento usar filtros con las nuevas herramientas de desarrollo de IPP: el Explorador de API de IPP. Estoy usando el IDS V2 QBO API Explorer. Puedo usar esa herramienta para recuperar todas las Publicaciones y la respuesta muestra a todos mis clientes, pero cuando intento usar un filtro obtengo: Error del servidor 401 - No autorizado: el acceso se deniega debido a credenciales no válidas. No tiene permiso para ver este directorio o página con las credenciales que proporcionó.

¿Algunas ideas? Si recibo el mismo error de la herramienta API Explorer, me hace pensar que el problema es algo completamente distinto.

---- Actualización final ----

Finalmente he tenido éxito con los filtros y creo que he descubierto cuál era mi problema. Siempre sospeché que podía hacer que funcionaran las consultas con paginación como "PageNum = 1 & ResultsPerPage = 1", pero no pude obtener algo como "Filter = FAMILYNAME: IGUALS: Doe". Sospeché que había un problema con los espacios en blanco en el formato de filtro. Lo que me hizo descartar el seguimiento de esto antes fue que no pude hacer que los filtros funcionaran en el IDS V2 QBO API Explorer. Eso me hizo sospechar que estaba pasando algo más. Decidí ignorar el API Explorer por completo y centrarme en por qué podía hacer que funcionara de una manera pero no de la otra.

Creo que mi problema se debió a una codificación incorrecta del valor del filtro en la firma. Eso explica los 401 errores de firma inválidos que estaba recibiendo.

"Filter = Name: EQUALS: Doe" se convierte en "Filter = Name% 20% 3AEQUALS% 20% 3Adoe" después de la normalización.

Porcentaje de codificación que debe dar "Filter% 3DName% 2520% 253AEQUALS% 2520% 253AD".

En esencia, tiene que "doble" codificar el espacio en blanco y los dos puntos, pero no el signo igual. Intenté varias permutaciones para hacer la codificación, pero creo que mi error fue que no estaba codificando el "doble", o cuando estaba codificando el doble incluí el signo "=". De cualquier manera rompe tu firma. Gracias por el aporte de todos.

Respuestas a la pregunta(4)

Su respuesta a la pregunta