我正在开发服务器上测试 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 关注
- 137 浏览
添加回答
举报
0/150
提交
取消