1

I am developing alexa smart home skill. As part account linking i am getting AcceptGrant. I am getting below error,When i am getting access_token and refresh_token by using authorization code which i get as part of AcceptGrant request. Something i was missed. Same code is working for another skill. Could you please tell me what i missed?

ERROR   Invoke Error    {
"message": "Request failed with status code 400",
"name": "Error",
"stack": "Error: Request failed with status code 400\n    at createError (/var/task/node_modules/axios/lib/core/createError.js:16:15)\n    at settle (/var/task/node_modules/axios/lib/core/settle.js:17:12)\n    at IncomingMessage.handleStreamEnd (/var/task/node_modules/axios/lib/adapters/http.js:293:11)\n    at IncomingMessage.emit (events.js:412:35)\n    at endReadableNT (internal/streams/readable.js:1334:12)\n    at processTicksAndRejections (internal/process/task_queues.js:82:21)",
"config": {
    "transitional": {
        "silentJSONParsing": true,
        "forcedJSONParsing": true,
        "clarifyTimeoutError": false
    },
    "transformRequest": [
        null
    ],
    "transformResponse": [
        null
    ],
    "timeout": 1000,
    "xsrfCookieName": "XSRF-TOKEN",
    "xsrfHeaderName": "X-XSRF-TOKEN",
    "maxContentLength": -1,
    "maxBodyLength": -1,
    "headers": {
        "Accept": "application/json, text/plain, */*",
        "Content-Type": "application/x-www-form-urlencoded;charset=UTF-8",
        "User-Agent": "axios/0.24.0",
        "Content-Length": 206
    },
    "method": "post",
    "url": "https://api.amazon.com/auth/o2/token",
    "data": "grant_type=authorization_code&code=RHmcOGELgCJeAHZUDtJm&client_id=amzn1.application-oa2-client.2e90a623fe5343baa8d201d038dd8666&client_secret=47cc11f1a945dde6d9844cf33ff2962fe064703c5a2ad5d651dbc29af31b539d"
},
"status": 400

}

Code

getTokensWithAuthCode(authCode) {
const body = querystring.stringify({
      grant_type: 'authorization_code',
      code: authCode,
      client_id: ALEXA_CLIENT_ID,
      client_secret: ALEXA_CLIENT_SECRET
    });

    return this.amazonTokenPost(body);
  },

  amazonTokenPost(body) {
    return axios.post('https://api.amazon.com/auth/o2/token', body, {
      headers: { 'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8' },
      timeout: 1000
    });
  }
Suresh Pichuka
  • 119
  • 1
  • 7

0 Answers0