【问题标题】:Getting error 502 when using REST API to retrieves list of all applications使用 REST API 检索所有应用程序列表时出现错误 502
【发布时间】:2017-02-07 12:35:22
【问题描述】:
GET /imfpush/v1/apps HTTP/1.1
Host: mobilefoundation-3b-mf-server.mybluemix.net
Authorization: Bearer eyJhbGciOiJSUzI1NiIsImp....
Content-Type: application/json

另一种调用方式

curl -X GET -H "Authorization: Bearer eyJhbGciOiJSUzI1N...." "https://mobilefoundation-3b-mf-server.mybluemix.net/imfpush/v1/apps"

错误 502: 请求令牌失败,原因:向授权服务器请求不成功,服务器响应状态码:400 和正文:{"errorCode":"invalid_client"},检查授权 URL:http://localhost:8080/mfp/api/az/v1/token

【问题讨论】:

  • 这看起来不像是从服务器获取应用程序列表的正确 REST API。此外,您似乎没有获得访问令牌来访问服务器...
  • 当我在 kibana 中检查登录时发现此错误:[错误] 无法获取访问令牌,如果在外部 AZ 模式下工作,请验证您已将 clientId/clientSecret 设置为 null
  • 查看我的更新答案。

标签: ibm-mobilefirst


【解决方案1】:

TL;DR:现在看起来/imfpush/v1/apps 端点中存在一个错误,它不会按供应商(APNS、GCM、WNS)过滤应用程序,因此您只能获取所有应用程序的列表...


但是请注意,这一切都取决于您的最终目标。您可以通过代码或使用 curl 或 Postman、Swagger 等工具来完成此操作……这完全取决于您想要实现的目标。

这里有 3 种方法:

  1. 本地开发服务器 - Bluemix 上的 Mobile Foundation 服务中不可用,您可以use this URL 查看 Swagger 中公开的 REST 端点。然后,您可以使用这个查看支持推送的应用程序:http://localhost:9080/doc/?url=/imfpush/v1/swagger.json#!/Applications/getAllApplications

    • 首先,在 MobileFirst 操作控制台 > 运行时设置 > 机密客户端
    • 添加(只是一个示例,选择您自己的)一个新的user 客户端(ID:user,秘密:user
    • 添加apps.readpush.application.* 范围

    确保单击旋钮并添加apps.readpush.applications.* 范围。

    您还将被要求授权。使用您之前创建的 user 机密客户端的用户名和密码。

  1. 使用 /imfpush 服务,如下所述。
  2. 使用 mfpadmin 服务,如下所述。

在我的示例中,我将使用 Postman。


  1. MobileFirst 操作控制台 > 运行时设置 > 机密客户端

    • 添加(只是一个示例,选择您自己的)一个新的user 客户端(id:user,秘密:user
    • 添加了apps.readpush.application.* 范围
  2. 通过向http://localhost:9080/mfp/api/az/v1/token 发出 POST 请求获得访问令牌:

    授权标签:

    • 类型:基本身份验证
    • 用户:用户
    • 密码:用户

    正文标签:

    • x-www—form-urlencoded
    • grant_code:client_credentials
    • 范围:apps.read push.application.*
  3. 通过向http://localhost:9080/imfpush/v1/apps 发出 GET 请求获得应用程序列表:

    标题标签:

    • 授权:Bearer the-access-token-from-step-2
  4. 1234563 /p>

当然,您需要将localhost 更改为您服务器的主机。


要仅获取所有应用程序的列表,使用mfpadmin 服务applications 端点会更快。使用邮递员:

  1. http://localhost:9080/mfpadmin/management-apis/2.0/runtimes/mfp/applications创建了一个新的GET请求

    您可以将域更改为您的。

  2. 授权选项卡中,我设置了以下内容:

    • 类型:基本身份验证
    • 用户名和密码:您的用户名和密码(到控制台)

作为回报,我收到了一份已注册申请的清单。

【讨论】:

    猜你喜欢
    • 2021-09-17
    • 2014-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-05
    相关资源
    最近更新 更多