Particle Photon API:获取客户令牌适用于 Postman 但不适用于 axios

雅各布

我正在开发一个结合 Photon Particle 的 React Native 应用程序。通过遵循双腿身份验证的文档在配置设备之前,我需要获取索赔代码。

curl -X POST \
  https://api.particle.io/oauth/token \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -d 'grant_type=client_credentials&client_id=client_id&client_secret=clsecret&scope=customer%3Demail%40gmail.com'

当我使用 CURL 甚至邮递员执行请求时,我得到了想要的结果。但是当我在 react native (iOS) 中使用 axios 尝试这个时,我总是收到以下错误:Invalid or missing grant_type parameter.

下面的代码是我检索数据的 React Native 代码。正如你所看到的,我正在传递 grant_type。

costumerToken() {
    const route = `${this.route}/oauth/token`;
    const headers = {
        "Accept": "application/json",
        "Content-Type": "application/x-www-form-urlencoded"
    }
    const body = {
        "grant_type": "client_credentials",
        "client_id": this.clientId,
        "client_secret": this.clientSecret,
        "scope": `customer=${this.costumerEmail}`
    }
    console.log(route, headers, body);
    return axios.post(route, body, {headers: headers})
        .then(res => {
            return Promise.resolve(res);
        })
        .catch(err => {
            return Promise.reject(err.response);
        });
}

怎么了?

须田

传递Objectasaxios.post()正文时,它会将其作为 JSON 发送,但粒子 API 期望它是application/x-www-form-urlencoded. Axios 文档更深入地探讨了这个主题。为了使其工作,您可以将代码更改为:

customerToken() {
    const route = `${this.route}/oauth/token`;
    const headers = {
        "Accept": "application/json",
        "Content-Type": "application/x-www-form-urlencoded"
    }
    const body = new URLSearchParams();
    body.append("grant_type", "client_credentials");
    body.append("client_id", this.clientId);
    body.append("client_secret", this.clientSecret);
    body.append("scope", `customer=${this.costumerEmail}`);
    console.log(route, headers, body);
    return axios.post(route, body, {headers: headers})
        .then(res => {
            return Promise.resolve(res);
        })
        .catch(err => {
            return Promise.reject(err.response);
        });
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Axios获得授权不适用于Vue,但适用于POSTMAN(适用于vue的Post方法)

来自分类Dev

API 调用适用于 postman 但不适用于 filemaker

来自分类Dev

代码适用于Postman,但不适用于localhost Ajax

来自分类Dev

Axios 标头适用于 Django GET 请求,但不适用于 PUT 请求

来自分类Dev

Node.js API-适用于Postman,但不适用于Angular.js

来自分类Dev

AWS Cognito身份验证适用于Postman,但不适用于Angular Web应用程序

来自分类Dev

Django中的Jsonresponse可在浏览器中工作,但不适用于PostMan或Angular

来自分类Dev

SOAP 请求适用于 Postman,而不适用于 PHP

来自分类Dev

Set-Cookie 不适用于 Opera/Firefox,但适用于 Postman。(表示)

来自分类Dev

POST请求不适用于POSTMAN上的JSON

来自分类Dev

Rest API post 请求不适用于 Mac 和 Ubuntu 的 Postman,但仅适用于 Windows

来自分类Dev

Axios修补程序请求不适用于Laravel

来自分类Dev

测试适用于“ $ f”,但不适用于“ $ @”

来自分类Dev

适用于 PHP 但不适用于脚本

来自分类Dev

Photon PUN2 Unity3D - 发送 RPC 可在独立 (PC) 上运行,但不适用于 Android

来自分类Dev

缩进指南插件不再适用于 Eclipse Photon 2018?

来自分类Dev

Postgres 查询适用于 SQL 客户端,但不适用于 Hibernate

来自分类Dev

Axios POST/登录请求不适用于 Rails API 后端

来自分类Dev

Android:代码适用于 api 19 但不适用于 api 24

来自分类Dev

相机API适用于Jelly Bean,但不适用于Kitkat

来自分类Dev

API适用于Java应用程序,但不适用于JavaFX

来自分类Dev

googlemaps api适用于python终端,但不适用于脚本

来自分类Dev

对Web-api的ajax调用适用于GET,但不适用于POST

来自分类Dev

API适用于Java应用程序,但不适用于JavaFX

来自分类Dev

docker 子域 api.localhost 适用于 chrome 但不适用于终端

来自分类Dev

获取 API 不适用于 Proguard

来自分类Dev

Vue.js环境变量不适用于Heroku上的axios

来自分类Dev

React Axios get调用不适用于授权标头

来自分类Dev

R函数适用于单个列,但不适用于apply

Related 相关文章

  1. 1

    Axios获得授权不适用于Vue,但适用于POSTMAN(适用于vue的Post方法)

  2. 2

    API 调用适用于 postman 但不适用于 filemaker

  3. 3

    代码适用于Postman,但不适用于localhost Ajax

  4. 4

    Axios 标头适用于 Django GET 请求,但不适用于 PUT 请求

  5. 5

    Node.js API-适用于Postman,但不适用于Angular.js

  6. 6

    AWS Cognito身份验证适用于Postman,但不适用于Angular Web应用程序

  7. 7

    Django中的Jsonresponse可在浏览器中工作,但不适用于PostMan或Angular

  8. 8

    SOAP 请求适用于 Postman,而不适用于 PHP

  9. 9

    Set-Cookie 不适用于 Opera/Firefox,但适用于 Postman。(表示)

  10. 10

    POST请求不适用于POSTMAN上的JSON

  11. 11

    Rest API post 请求不适用于 Mac 和 Ubuntu 的 Postman,但仅适用于 Windows

  12. 12

    Axios修补程序请求不适用于Laravel

  13. 13

    测试适用于“ $ f”,但不适用于“ $ @”

  14. 14

    适用于 PHP 但不适用于脚本

  15. 15

    Photon PUN2 Unity3D - 发送 RPC 可在独立 (PC) 上运行,但不适用于 Android

  16. 16

    缩进指南插件不再适用于 Eclipse Photon 2018?

  17. 17

    Postgres 查询适用于 SQL 客户端,但不适用于 Hibernate

  18. 18

    Axios POST/登录请求不适用于 Rails API 后端

  19. 19

    Android:代码适用于 api 19 但不适用于 api 24

  20. 20

    相机API适用于Jelly Bean,但不适用于Kitkat

  21. 21

    API适用于Java应用程序,但不适用于JavaFX

  22. 22

    googlemaps api适用于python终端,但不适用于脚本

  23. 23

    对Web-api的ajax调用适用于GET,但不适用于POST

  24. 24

    API适用于Java应用程序,但不适用于JavaFX

  25. 25

    docker 子域 api.localhost 适用于 chrome 但不适用于终端

  26. 26

    获取 API 不适用于 Proguard

  27. 27

    Vue.js环境变量不适用于Heroku上的axios

  28. 28

    React Axios get调用不适用于授权标头

  29. 29

    R函数适用于单个列,但不适用于apply

热门标签

归档