亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Yahoo OAuth2 get_token 返回錯誤 500(內部服務器錯誤)

Yahoo OAuth2 get_token 返回錯誤 500(內部服務器錯誤)

C#
慕勒3428872 2023-12-17 10:04:47
我正在關注雅虎官方文檔 (https://developer.yahoo.com/oauth2/guide/openid_connect/getting_started.html )。用戶使用雅虎登錄后,我可以成功獲取授權碼。我現在處于第 3 步,嘗試用授權代碼交換令牌,但 Yahoo 一直返回 http 錯誤 500。為了從 Yahoo 交換訪問令牌的授權代碼,我使用以下 RestSharp 語法:var client = new RestClient(provider.TokenUrl);RestRequest request = new RestRequest() { Method = Method.POST };request.AddParameter("client_id", codeModel.clientId, ParameterType.GetOrPost);request.AddParameter("client_secret", provider.Secret, ParameterType.GetOrPost);request.AddParameter("code", codeModel.code, ParameterType.GetOrPost);request.AddParameter("grant_type", "authorization_code", ParameterType.GetOrPost);request.AddParameter("redirect_uri", codeModel.redirectUri, ParameterType.GetOrPost);request.AddHeader("Content-Type", "application/x-www-form-urlencoded");var response = client.Execute<TokenResponseModel>(request);responde.data 返回以下內容: 內容:{“錯誤”:“ACCESS_TOKEN_GENERATION_FAILED”,“error_description”:“訪問令牌生成失敗”} 狀態代碼:InternalServerError官方文檔指出:“以下請求參數在請求體中使用HTTP POST傳輸。但是,您也可以在 HTTP 標頭中發送參數 client_id 和 client_secret”。我已經嘗試了這兩種方法(clientid 和機密作為正文的一部分和基本授權標頭),并且都返回相同的結果。當發送 clientid 和機密作為基本授權標頭的一部分時,上面的兩個參數都將替換為以下內容:client.Authenticator = new RestSharp.Authenticators.HttpBasicAuthenticator(codeModel.clientId, provider.Secret);如前所述,雅虎返回的唯一消息是“內部服務器錯誤”。RestSharp 語法是否有問題可能導致此問題?任何其他想法將不勝感激。不用說,請求的所有參數都包含了它們需要的數據。
查看完整描述

1 回答

?
撒科打諢

TA貢獻1934條經驗 獲得超2個贊

當您在 YDN 創建應用程序配置文件時,您必須確保至少選擇一項 API 權限。例如,嘗試“個人資料(社交目錄)公開讀取”。

如果您的應用程序沒有 API 權限,那么令牌生成將會按照您所描述的方式失敗。

如果您已經創建了沒有權限的應用程序,則必須將其刪除并重新創建。


查看完整回答
反對 回復 2023-12-17
  • 1 回答
  • 0 關注
  • 193 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號