首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >接口Callback_URL无效调用

问接口Callback_URL无效调用
EN

Stack Overflow用户
提问于 2018-04-23 20:33:54
回答 2查看 1.4K关注 0票数 4

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

身份验证在MainActivity的onCreate()方法中进行。测试应用程序在MainActivity旁边使用了两个类。StravaOAuth20ServiceImpl用于配置令牌接口请求和撤销令牌接口。StravaOAuth2Api包含接口的EndPoints。这些看起来没问题。

我没有从回调中得到代码。这就是我被卡住的地方。为了正常工作,需要在开发者设置中正确设置回调,包括Strava、Android Manifest和EndPoint接口调用。

我目前在开发模式下工作。网站上写着"localhost和127.0.0.1被列入白名单“,所以我在我的callback_url中使用了它们。对于这两种情况,我都得到了以下JSON作为响应:

代码语言:javascript
复制
{
"message": "Bad Request",
"errors": [
{
"resource": "Application",
"field": "redirect_uri",
"code": "invalid"
}
]
}

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

代码语言:javascript
复制
- 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 Manifest中设置一个“主机”和“方案”(参见下面的代码)。当我尝试在我的应用程序设置中这样做时,我得到一条错误消息"Field必须是一个域,没有//“(参见下面的打印屏幕)。这是我第一次看到这个。是不是没有“方案”的回调?

代码语言:javascript
复制
<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>

​

​

首先感谢您的帮助!

EN

回答 2

Stack Overflow用户

发布于 2021-01-02 05:43:39

斯特拉瓦的官方文档在这里:https://developers.strava.com/docs/authentication/

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

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

票数 1
EN

Stack Overflow用户

发布于 2018-04-24 18:09:39

在OAuth2 documentation之后,您必须使用与授权设置中包含的值完全相同的值。

因此,在您的示例中,redirect_uri参数应为:

代码语言:javascript
复制
http://127.0.0.1

最好的!

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49981205

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档