2017-10-28 345 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