Erro 401 ao acessar API de subscriptions dentro de um client

Estou tentando acessar todas as subscriptions de um usuário utilizando o filtro de email da API. Quando faço a request por meio da ferramenta da documentação ou pelo Postman, ela funciona sem problemas, porém quando uso um client no backend recebo um código 401 sem mensagem de erro.

Eis o código do client:

import type { InstanceOptions, IOContext } from '@vtex/api'
import { ExternalClient } from '@vtex/api'
import { Settings } from "../middlewares/allStates";

export default class subscriptions extends ExternalClient {
	constructor(context: IOContext, options?: InstanceOptions) {
		super(`http://${context.account}.myvtex.com`, context, {
			...options,
		})
	}
	public async getSubscriptionsByEmail(email: string, settings: Settings): Promise<string> {
		return this.http.get(`/api/rns/pub/subscriptions?customerEmail=${email}&page=1&size=15`, {
			headers: {
				'X-VTEX-API-AppKey': settings.appKey,
				'X-VTEX-API-AppToken': settings.appToken,
			}
		})
	}
}

Verifiquei o objeto settings que é recebido pelo método, e ele contém de fato uma appKey e appToken válidos.

A URL da request também é a mesma que uso no Postman, e a política de outbound-access no manifest.json está configurada corretamente.

O que pode causar esse erro?

Opa, chutando aqui …

Tentou passar os valores key/token no construtor em vez de passá-los na chamada da função?

Como posso ter acesso a eles dentro do constructor? Estou armazenando eles em app settings.

Edit. Testei, não fez diferença.

Opa, tem que passar outro header também.
{ ‘Proxy-Authorization’: ctx.authToken},

1 Like

This topic was automatically closed 24 hours after the last reply. New replies are no longer allowed.