2016-04-13 41 views
0

Erişim belirteci için bir kod değiştirmek için bir geliştirme sunucusunda bir GET isteğini test ediyorum.FB exchange token api kusur hatası

Oauth şekilde URL:/kod ağırlık

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 

Geri arama. Aşağıdaki yanıtı alıyorum.

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"}} 

Sorun, bu hatanın iki dizüstü bilgisayarımdan birinde gerçekleşmesidir. Her ikisi de aynı kodu çalıştırıyorlar.

Bu, değişim için kullanıyorum golang işlevidir.

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

cevap

2

hata mesajı Temel Auth için adınızı 1543358959292867 olması gerektiğini söylüyor, henüz client_id sağladığınız aslında 1543358959292867\n < olduğunu - (sorgu params %0A olarak kodlanmış) ucunda tacked satır.

Bu sorunun farklı makineler olmalarına bağlı olduğunu sanmıyorum, ancak bu farklı makinelerden kullanılan girdi.

Yapılması gereken basit bir şey, client_id'u günlüğe kaydeder, böylece ne zaman çalıştığını ve kimliğin ne zaman yapılmadığını görebilirsiniz. Oturum açtığınızda, yeni satırları görebilmeniz için bilinen bir karakterle sarmak isteyebilirsiniz. Örneğin,

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

client_id o da dahil olmak üzere herhangi önek veya sonek boşlukları silebilirsiniz strings.TrimSpace kullanabilirsiniz

|1543358959292867 
| 

yerine

|1543358959292867| 

gibi bir şey günlüğe kaydeder ardından yeni satır içeriyorsa yeni satırların.

client_id = strings.TrimSpace(client_id) 
+0

Teşekkür ederiz! Ortam değişkenlerimi trimspace ile ayarlıyorum, dolayısıyla böyle görünüyor. os.Setenv ("fbSecret", dizeleri.TrimSpace (string (fbSecret))) Şimdi iyi çalışıyor. – goda