2016-04-13 11 views
0

開発サーバーでGETリクエストをテストして、アクセストークンのコードを交換しています。FB交換トークンAPIのスローエラー

の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 Request 
Response: {"error":{"message":"The username for your HTTP Basic Authorization must be 1543358959292867","type":"OAuthException","code":101,"fbtrace_id":"HTJcNHH6OmY"}} 

問題は、このエラーが2台のラップトップのいずれかで発生することです。両方ともまったく同じコードを実行します。

これは交換用に使用しているゴラン機能です。

tok, err := fbConfig.Exchange(oauth2.NoContext, r.FormValue("code")) 

答えて

2

エラーメッセージが基本認証のためのユーザー名が1543358959292867でなければならないことを言って、まだclient_idあなたが提供するには、実際に1543358959292867\n <ある - 改行は(あなたのクエリのparamsで%0Aとしてエンコード)の端にタック。

私は、問題は必ずしも異なるマシンではなく、それらの異なるマシンから使用されている入力には結びつかないと思います。

簡単なことは、client_idをログに記録すると、動作しているときとIDがないときは何であるかを見ることができます。ログに記録するときには、それを既知の文字で囲んで改行を表示することができます。例えば、

fmt.Printf("|%s|", client_id) 

client_idは、それはあなたがまた含めた任意の接頭辞や接尾空白を削除するためにstrings.TrimSpaceを使用することができ

|1543358959292867 
| 

代わりの

|1543358959292867| 

のようなものを記録しますその後、改行が含まれている場合改行

client_id = strings.TrimSpace(client_id) 
+0

ありがとうございます!私はtrimspaceで自分の環境変数を設定していますので、このように見えます。 os.Setenv( "fbSecret"、strings.TrimSpace(string(fbSecret)))今は正常に動作します。 – goda

関連する問題