簡體   English   中英

驗證后Yahoo API的問題

[英]Problems with Yahoo API after authentication

我一直在尋找答案,但是似乎找不到答案。 我已經嘗試了好幾件事,所有這些我都會在這里列出,希望有人可以指出正確的方向。

首先,我使用Hapi框架構建了一個簡單的Node應用程序。 另外,我正在使用同樣來自Hapi的Bell庫對Yahoo和hapi-auth-cookie進行身份驗證,以使用身份驗證結果設置會話。 據我所知,這是完美的。

用戶通過身份驗證后,Bell向我提供了令牌和機密。

令牌看起來像這樣:

A=vvnxl1_FhCK6FPEFbIA.p_N8cSet7Ifmye.i3mWa6hrlh7fXecZhQvumjKSXPkRGfcj2BaFSmZCWPXeW67G8kqiS4G3Z7yBR

這個秘密看起來像這樣:

9e17917hsjf863c220c35f3f3385b6e4cd586c84

因此,一旦我通過身份驗證並重定向到我的主頁,便擁有了這兩個並設置了一個cookie。 據我了解,我已經准備好了。 然后,我嘗試使用以下URL來訪問Yahoo API:

https://fantasysports.yahooapis.com/fantasy/v2/leagues;league_keys=328.l.5668/standings?format=json

點擊此網址的響應是:

{
"error":
    {
        "lang": "en-US",
        "description": "Please provide valid credentials. OAuth oauth_problem=\"unable_to_determine_oauth_type\", realm=\"yahooapis.com\""
     }
 }

顯然,我要訪問的URL不完整。 但是,我不確定所需的參數是什么。 我去過Yahoo docs 1000次了,但是我似乎找不到這個具體答案。 那里的所有示例大多與身份驗證位有關,我應該這樣做。 因此,希望我能走運,我開始嘗試在URL中傳遞令牌和秘密。 在這一部分中,我嘗試了API URL +令牌+機密+簽名。 我正在使用的令牌和秘密是上面引用的Bell提供的:

https://fantasysports.yahooapis.com/fantasy/v2/leagues;league_keys=328.l.5668/standings?format=json&&oauth_token=A=tqq2L3D54ATsQZbgHB95b0ZyCj_kgq01R69vTulZ6lP9evhzddrIaksmd6u21fNSPFQ8WtVBsWr9GFk1zQtsw_OP4pKKaDKs2TxHlqwAYp4ZyIkthzPcSnJQka.J2THeK8BHC8eeisT4EeQpMqcDgefX6Hbb1CsQ_bD00ECd3AE.uGdF_6sm&oauth_secret=b5d2359f191cc72cfd318b5cf&oauth_signature=524a4f6e1407acd00a98f53973180%26b5d2359f191cc4c7d7d7bfd318b5cf

現在,它告訴我令牌已被拒絕:

{
    "error": {
        "lang": "en-US",
        "description": "Please provide valid credentials. OAuth oauth_problem=\"token_rejected\", realm=\"yahooapis.com\""
    }
}

我還嘗試了沒有簽名的情況,在這種情況下,錯誤告訴我缺少簽名。

在這里的任何幫助,將不勝感激。 通過搜索過去一周,我發現Yahoo API並不是最容易使用的東西,但是希望有人在這里有所了解,因為我似乎很親近。 我希望我包括了您需要的所有信息,謝謝!!

正確驗證用戶身份后,您將擁有提到的“ oauth_token”和“ oauth_token_secret”。

現在,在嘗試訪問Yahoo API時,您需要按照oauth規范提供“令牌”和“秘密”,以便Yahoo理解您被允許訪問其API。

oauth的工作方式就是這樣,您可以將oauth信息作為“授權”標頭的一部分提供,也可以使用url查詢參數。

“ oauth_token_secret”(以及所有其他呼叫信息)應用於生成“ oauth_signature”,雅虎將在其末尾進行驗證。 訪問他們的api時,不應原樣發送“秘密”。

請注意,oauth信息不僅涉及“令牌”和“簽名”,而且還涉及“ nonce”,“ timestamp”,“ version”,“ signature_method”等。所有信息(以及機密信息)都將是用於生成簽名,然后將其作為api調用的一部分傳遞給yahoo。

Oauth文檔可在http://tools.ietf.org/pdf/rfc5849.pdf中找到

HTH

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM