我正在開發服務器上測試 GET 請求以交換訪問令牌的代碼。Oauth 表單 URL:https://www.facebook.com/dialog/oauth? client_id=1543358959292867%0A& redirect_uri=http%3A%2F%2Flocalhost%3A8080%2FFBLoginCallback& response_type=code& scope=email+user_birthday+user_about_me帶代碼的回調。http://localhost:8080/FBLoginCallback?code=AQAsGssRxA9nDZ2YQ82Dgdw_NB_MsikZxVanO75QG0hKlH9F49v7CEiu5ssBHLmvF_hc4081Q5KcJq9cgC9pyIacz-ekpL6WKv5x0E12-HRzvR7bSImWJMktfTIfbabIDDy3BsOue2GhGos7qlIbU-XJGrzWMehbEhAb4p-2rpd4bVnIqKvaErU2Ma8onUMM8HICyf7IaArOlZs5VYqQDO0IjxsTot5DdU0j8IyBdmtksdspPK-YMhFcJTXabAxO2tWnvOQhAMCH00rlIByCY-xXMIgiLfrnF_YRrs9x5lU2d8ZF2DZrHgXLfnxH1Hh-bGQ#_=_我得到以下回應。oauth2: cannot fetch token: 400 Bad RequestResponse: {"error":{"message":"The username for your HTTP Basic Authorization must be 1543358959292867","type":"OAuthException","code":101,"fbtrace_id":"HTJcNHH6OmY"}}問題是此錯誤發生在我的兩臺筆記本電腦之一上。它們都運行完全相同的代碼。這是我用于交換的 golang 函數。tok, err := fbConfig.Exchange(oauth2.NoContext, r.FormValue("code"))
1 回答

呼啦一陣風
TA貢獻1802條經驗 獲得超6個贊
錯誤消息說您的 Basic Auth 用戶名必須是1543358959292867,但client_id您提供的實際上是1543358959292867\n<- 末尾添加了換行符(編碼為%0A您的查詢參數)。
我認為這個問題不一定與使用不同的機器有關,而是與這些不同機器使用的輸入有關。
一個簡單的事情就是記錄,client_id這樣你就可以看到它在工作時是什么,而當 id 不工作時又是什么。當您記錄它時,您可能希望用已知字符將其包裝起來,以便您可以看到換行符。例如,
fmt.Printf("|%s|", client_id)
如果client_id包含換行符,則將記錄類似的內容
|1543358959292867
|
代替
|1543358959292867|
您還可以使用strings.TrimSpace刪除任何前綴或后綴空格,包括換行符。
client_id = strings.TrimSpace(client_id)
- 1 回答
- 0 關注
- 170 瀏覽
添加回答
舉報
0/150
提交
取消