gpt4 book ai didi

android - API Callback_URL 无效调用

转载 作者:行者123 更新时间:2023-11-29 02:30:05 25 4
gpt4 key购买 nike

我刚开始在 Android 上使用 Strava API。为了使用它,我首先需要成功设置 OAuth2。为此,我选择使用 Scribe 库,因为我在之前的实现中使用过它。

身份验证发生在 MainActivity 的 onCreate() 方法中。测试应用程序使用 MainActivity 旁边的两个类。 StravaOAuth20ServiceImpl 用于配置 API 请求 token 和撤销 token 。 StravaOAuth2Api 包含 API 的端点。这些看起来不错。

我没有从回调中得到代码。那就是我被困的地方。为了发挥作用,需要在 Strava、Android Manifest 和 API EndPoint 调用的开发者设置中正确设置回调。

我目前在开发模式下工作..在网站上声明“localhost and 127.0.0.1 are white-listed”,所以我使用了这些在我的 callback_url 中。对于两者,我都得到以下 JSON 作为响应:

{
"message": "Bad Request",
"errors": [
{
"resource": "Application",
"field": "redirect_uri",
"code": "invalid"
}
]
}

所以这两个调用都是无效的..

- https://www.strava.com/oauth/authorize?response_type=code&client_id=25016&redirect_uri=127.0.0.1

- https://www.strava.com/oauth/authorize?response_type=code&client_id=25016&redirect_uri=localhost

一个相关的问题是关于 callback_url 的形式。我对 FitBit 做了同样的事情,并使用了“http://callback_myapplication”形式的回调。为此,我必须在我的 Android list 中设置“主机”和“方案”(请参阅​​下面的代码)。当我尝试在我的应用程序设置中这样做时,我收到一条错误消息“字段必须是一个域,没有//”(请参阅​​下面的打印屏幕)。这是我第一次看到这个。那是没有“方案”的回调吗?

<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.LAUNCHER" />
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data android:host="127.0.0.1"
android:scheme="http"/>
</intent-filter>

enter image description here

预先感谢您的帮助!

最佳答案

Strava 的官方文档在这里: https://developers.strava.com/docs/authentication/

根据他们的文档,localhost 和 127.0.0.1 都在白名单中。因此,无论应用程序页面上的设置如何,重定向都应该适用于本地主机。这也是我的经验:重定向到本地主机的任何端口应该都可以。

当需要设置一个真实的 URL 时,回调域设置应该只是域名。没有协议(protocol)(例如 http/https),没有端口号。因此,例如,只需“myapp.domain.com”。

关于android - API Callback_URL 无效调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49981205/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com