为了账号安全,请及时绑定邮箱和手机立即绑定

FB交换令牌api抛出错误

FB交换令牌api抛出错误

Go
jeck猫 2022-01-04 13:28:38
我正在开发服务器上测试 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)


查看完整回答
反对 回复 2022-01-04
  • 1 回答
  • 0 关注
  • 137 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信