@@ -131,7 +131,8 @@ defmodule Ueberauth.Strategy.Facebook do
131
131
132
132
defp fetch_user ( conn , token ) do
133
133
conn = put_private ( conn , :facebook_token , token )
134
- path = "/me?fields=#{ option ( conn , :profile_fields ) } "
134
+ query = user_query ( conn )
135
+ path = "/me?#{ query } "
135
136
case OAuth2.AccessToken . get ( token , path ) do
136
137
{ :ok , % OAuth2.Response { status_code: 401 , body: _body } } ->
137
138
set_errors! ( conn , [ error ( "token" , "unauthorized" ) ] )
@@ -143,6 +144,23 @@ defmodule Ueberauth.Strategy.Facebook do
143
144
end
144
145
end
145
146
147
+ defp user_query ( conn ) do
148
+ conn
149
+ |> query_params ( :locale )
150
+ |> Map . merge ( query_params ( conn , :profile ) )
151
+ |> URI . encode_query
152
+ end
153
+
154
+ defp query_params ( conn , :profile ) do
155
+ % { "fields" => option ( conn , :profile_fields ) }
156
+ end
157
+ defp query_params ( conn , :locale ) do
158
+ case option ( conn , :locale ) do
159
+ nil -> % { }
160
+ locale -> % { "locale" => locale }
161
+ end
162
+ end
163
+
146
164
defp option ( conn , key ) do
147
165
default = Dict . get ( default_options , key )
148
166
0 commit comments