如何为Android应用程序设置回调URL,以接收来自API的POST请求?

时间:2019-01-15 20:01:59

标签: android withings

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

  

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

     

您的URL必须:

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

  •   
  • 不得超过255个字符。

  •   
  • 都不包含IP或“ localhost”。仅允许端口80和443。

  •   

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

2 个答案:

答案 0 :(得分:0)

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

您需要的是移动应用程序和Auth端点之间的服务器,该服务器可以安全地通信登录令牌。您可以使用Auth0

之类的服务找到类似的流程

答案 1 :(得分:0)

我正在尝试做类似的事情,下面是一个对我来说很好的解决方案。希望这会有所帮助。

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

https://[yourdomain]/callback

用您的域替换[您的域],例如:

https://testtest.azurewebsites.net/callback

2)在Android Studio中

  • 添加活动,例如“ 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。