4

我想将 Withings 智能秤集成到我正在开发的 Android 应用程序中。我正在遵循 withings 开发人员文档中的入门说明。为此,我需要在此处注册我的应用程序,它需要一个“回调 URL”。以下是 Withings 为回调 URL 提供的详细信息:

我们的系统调用的合作伙伴 URL,用于通过 HTTP POST 请求发送通知。确保你的服务器可以处理一个 HTTP HEAD 请求来验证你的 url 的有效性。

您的网址必须:

  • 是一个有效的 URL,作为 URL 编码的字符串提供。请参阅 w3schools URL 编码参考以了解有关 URL 编码的更多信息。

  • 不超过 255 个字符。

  • 都不包含 IP 或“本地主机”。只允许使用端口 80 和 443。

如何为能够接收 POST 请求的 Android 应用设置回调 URL?

4

2 回答 2

4

我正在尝试做类似的事情,下面是一个适合我的解决方案。希望这可以帮助。

1) 在 Withings 开发者门户中,将回调 URI 注册为:

https://[yourdomain]/callback

将 [yourdomain] 替换为您的域,例如:

https://testtest.azurewebsites.net/callback

2) 在安卓工作室中

  • 添加一个活动,例如“RedirectHereActivity”
  • 在 strings.xml 中,添加您的域,例如:
 <string name="domain">testtest.azurewebsites.net</string>
  • 在 AndroidManifest.xml 中,将意图过滤器添加到“RedirectHereActivity”
<activity android:name=".RedirectHereActivity">
    <intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
        <data
            android:host="@string/domain"
            android:pathPrefix="/callback"
            android:scheme="https"/>
    </intent-filter>
</activity>

这样,回调将与访问代码一起重定向到此 Activity。

于 2019-03-20T12:37:28.690 回答
3

移动应用程序不能是回调 URL,因为它没有供 API 服务器回调的静态地址。例如,当您从移动网络移动到家庭 wifi 到咖啡店时,您的 Android IP 会发生变化。

您需要的是一个介于移动应用程序和 Auth 端点之间的服务器,它可以安全地传递登录令牌。您可以使用Auth0 之类的服务找到类似的流程

于 2019-01-15T20:25:21.720 回答