2017-10-28 152 views
0

我想读取和写入用户的Yahoo Fantasy Sports数据。OAuth2与雅虎API

我试图通过Yahoo API使用OAuthSwift获得访问权限。

我OAuthSwift物体看起来是这样的:

let oauth2Swift = OAuth2Swift(
    consumerKey: "*****", 
    consumerSecret: "*****", 
    authorizeUrl: "https://api.login.yahoo.com/oauth2/request_auth", 
    accessTokenUrl: "https://api.login.yahoo.com/oauth2/get_token", 
    responseType: "code" 
) 

我执行它是这样的:

self.oauth2Swift.authorize(withCallbackURL: "com.me.myapp", scope: "fspt-w", state: "", success: { (cred, response, params) in 
     print("✅ success") 
    }) { (error) in 
     print(" error") 
    } 

我创建了应用程序的实例在雅虎的开发者网站,并取得了一定的回调域与前面的代码片段中使用的回调域匹配:

enter image description here

我的iOS应用成功带来了在浏览器中雅虎的登录体验,但一旦它的用户日志显示以下错误:

Developers: Please check the redirect URI in your request and submit again.

enter image description here

所以我的问题是:为什么我收到尝试在Swift中授权使用OAuth的雅虎用户时发生上述错误?

回答

0

身份提供商将使用回调中指定的URL重定向到客户端应用程序。尝试将回调Url更改为应用程序的auth端点。我曾经用callbackURL: "http://127.0.0.1:xxxx/auth/yahoo/callback"进行测试,并用于工作。配置的回调域应与域中的网址相匹配

+0

嗨,我用它作为回调URL,并且仍然收到相同的错误 – vikzilla

+0

您是否错过了处理重定向的端点?你可以使用这个文档[Python中的OAuth2](https://goodcode.io/static/media/OAuth2-edited.pdf)来交叉检查你的代码。我在Spring中实现了,所以我在路径“/ yahoo/callback”上有一个认证过滤器来处理重定向。 – Senthil