Skip to content

Commit b68eddb

Browse files
committed
Merge pull request #13 from ueberauth/locale-support
Locale support
2 parents 1b7044d + e6bc745 commit b68eddb

File tree

1 file changed

+19
-1
lines changed

1 file changed

+19
-1
lines changed

lib/ueberauth/strategy/facebook.ex

+19-1
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,8 @@ defmodule Ueberauth.Strategy.Facebook do
131131

132132
defp fetch_user(conn, token) do
133133
conn = put_private(conn, :facebook_token, token)
134-
path = "/me?fields=#{option(conn, :profile_fields)}"
134+
query = user_query(conn)
135+
path = "/me?#{query}"
135136
case OAuth2.AccessToken.get(token, path) do
136137
{:ok, %OAuth2.Response{status_code: 401, body: _body}} ->
137138
set_errors!(conn, [error("token", "unauthorized")])
@@ -143,6 +144,23 @@ defmodule Ueberauth.Strategy.Facebook do
143144
end
144145
end
145146

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+
146164
defp option(conn, key) do
147165
default = Dict.get(default_options, key)
148166

0 commit comments

Comments
 (0)