Twitter 未批准回调 URL
Callback URL not approved by Twitter
我的应用程序建立在 spring-social-twitter 之上,允许用户使用 Twitter 登录,但最近停止工作。
我收到如下错误信息:
Callback URL not approved for this client application. Approved callback URLs can be adjusted in your application settings
注意:我使用的是 Spring 社交 Twitter 版本 1.1.2.RELEASE。如果您使用 Spring Social Twitter version 1.1.0.RELEASE,您可能会收到如下略有不同的错误消息:
POST request for "https://api.twitter.com/oauth/request_token" resulted in 403 (Forbidden); invoking error handler
出于安全原因,Twitter 最近(2018 年 5 月)强制要求使用 Twitter 登录的用户必须将回调 URL 列入白名单(参见 the announcement)。
这意味着必须为所有受支持的第三方应用程序明确且相同地设置回调 URL。您可以在 Twitter 的应用程序设置页面中设置回调 URLs:https://apps.twitter.com
例如,如果您的回调 URL 是 http://localhost:8080/myApp/signin/twitter
,您必须将其添加到 Twitter 应用程序设置页面中的回调 URL 列表中,与原样完全相同:http://localhost:8080/myApp/signin/twitter
自从 Twitter 进行了更改以提高安全性以来,我一直在努力解决这个问题。我的 android 应用程序将在 Intent 过滤器中使用回调 URL 和相同的 URL。但是由于更改,我使用的 URL 必须在 Twitter 开发人员门户中注册。我使用的是 ouath://myapp,但 Twitter 不接受它作为有效的 URL(网站)。
经过一番挖掘,我发现对于应用程序,您可以指定任何方案,但只能作为方案。例如我使用 myapp:// 作为回调 URL.
在我的应用程序中,我的回调 URL 是 myapp://whatever,在 Intent 过滤器中,我使用了:
<data android:scheme="myapp" android:host="whatever">
Twitter 接受了回调 URL 并且在用户使用他们的 Twitter 凭据进行身份验证后它正确地重定向回我的应用程序。
我最初只使用一个普通网站,它也能正常工作,但在 Twitter 验证后,它询问我是否要重定向到我的应用程序或 Chrome 浏览器。使用上述方法,它只会 return 到您的应用程序。
在我完成所有这些之后,我意识到我可以添加 Oauth:// 作为回调 URL 我的应用程序无需更改就可以运行。
我通过将这些回调 URL 添加到 Twitter 的白名单来修复它。
twitterkit-{Twitter API Key}://
对于 iOS。
twittersdk://
Android。
我的应用程序建立在 spring-social-twitter 之上,允许用户使用 Twitter 登录,但最近停止工作。
我收到如下错误信息:
Callback URL not approved for this client application. Approved callback URLs can be adjusted in your application settings
注意:我使用的是 Spring 社交 Twitter 版本 1.1.2.RELEASE。如果您使用 Spring Social Twitter version 1.1.0.RELEASE,您可能会收到如下略有不同的错误消息:
POST request for "https://api.twitter.com/oauth/request_token" resulted in 403 (Forbidden); invoking error handler
出于安全原因,Twitter 最近(2018 年 5 月)强制要求使用 Twitter 登录的用户必须将回调 URL 列入白名单(参见 the announcement)。
这意味着必须为所有受支持的第三方应用程序明确且相同地设置回调 URL。您可以在 Twitter 的应用程序设置页面中设置回调 URLs:https://apps.twitter.com
例如,如果您的回调 URL 是 http://localhost:8080/myApp/signin/twitter
,您必须将其添加到 Twitter 应用程序设置页面中的回调 URL 列表中,与原样完全相同:http://localhost:8080/myApp/signin/twitter
自从 Twitter 进行了更改以提高安全性以来,我一直在努力解决这个问题。我的 android 应用程序将在 Intent 过滤器中使用回调 URL 和相同的 URL。但是由于更改,我使用的 URL 必须在 Twitter 开发人员门户中注册。我使用的是 ouath://myapp,但 Twitter 不接受它作为有效的 URL(网站)。
经过一番挖掘,我发现对于应用程序,您可以指定任何方案,但只能作为方案。例如我使用 myapp:// 作为回调 URL.
在我的应用程序中,我的回调 URL 是 myapp://whatever,在 Intent 过滤器中,我使用了:
<data android:scheme="myapp" android:host="whatever">
Twitter 接受了回调 URL 并且在用户使用他们的 Twitter 凭据进行身份验证后它正确地重定向回我的应用程序。
我最初只使用一个普通网站,它也能正常工作,但在 Twitter 验证后,它询问我是否要重定向到我的应用程序或 Chrome 浏览器。使用上述方法,它只会 return 到您的应用程序。
在我完成所有这些之后,我意识到我可以添加 Oauth:// 作为回调 URL 我的应用程序无需更改就可以运行。
我通过将这些回调 URL 添加到 Twitter 的白名单来修复它。
twitterkit-{Twitter API Key}://
对于 iOS。
twittersdk://
Android。