From 6b4af34504e2886359dc08fc568560d4506f811c Mon Sep 17 00:00:00 2001 From: Kefah Issa Date: Sun, 27 Sep 2020 13:12:01 +0300 Subject: [PATCH 1/2] Retrieve image and gender from FB api call --- src/multi_auth/providers/facebook.cr | 6 +++++- src/multi_auth/user.cr | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/multi_auth/providers/facebook.cr b/src/multi_auth/providers/facebook.cr index dd5206a..116d654 100644 --- a/src/multi_auth/providers/facebook.cr +++ b/src/multi_auth/providers/facebook.cr @@ -20,6 +20,8 @@ class MultiAuth::Provider::Facebook < MultiAuth::Provider user.last_name = fb_user.last_name user.location = fb_user.location user.description = fb_user.about + user.image = fb_user.picture[:data][:url] + user.gender = fb_user.gender if fb_user.gender urls = {} of String => String urls["web"] = fb_user.website.as(String) if fb_user.website @@ -34,7 +36,9 @@ class MultiAuth::Provider::Facebook < MultiAuth::Provider property raw_json : String? property access_token : OAuth2::AccessToken? property picture_url : String? + property picture : NamedTuple( data: NamedTuple( url: String, height: Int64, width: Int64, is_silhouette: Bool)) + property gender : String? property id : String property name : String property last_name : String? @@ -50,7 +54,7 @@ class MultiAuth::Provider::Facebook < MultiAuth::Provider api = HTTP::Client.new("graph.facebook.com", tls: true) access_token.authenticate(api) - raw_json = api.get("/v2.9/me?fields=id,name,last_name,first_name,email,location,about,website").body + raw_json = api.get("/v2.9/me?fields=gender,picture,id,name,last_name,first_name,email,location,about,website").body fb_user = FbUser.from_json(raw_json) fb_user.access_token = access_token diff --git a/src/multi_auth/user.cr b/src/multi_auth/user.cr index b15d1f8..257b9ed 100644 --- a/src/multi_auth/user.cr +++ b/src/multi_auth/user.cr @@ -9,6 +9,7 @@ class MultiAuth::User getter access_token : OAuth::AccessToken | OAuth2::AccessToken property email : String? + property gender : String? property nickname : String? property first_name : String? property last_name : String? From 5d9001e66429fb129d9fb1e02e3457d412347803 Mon Sep 17 00:00:00 2001 From: "Kefah T. Issa" Date: Mon, 28 Sep 2020 13:52:55 +0300 Subject: [PATCH 2/2] Update facebook.cr --- src/multi_auth/providers/facebook.cr | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/multi_auth/providers/facebook.cr b/src/multi_auth/providers/facebook.cr index 116d654..5fe8483 100644 --- a/src/multi_auth/providers/facebook.cr +++ b/src/multi_auth/providers/facebook.cr @@ -21,7 +21,7 @@ class MultiAuth::Provider::Facebook < MultiAuth::Provider user.location = fb_user.location user.description = fb_user.about user.image = fb_user.picture[:data][:url] - user.gender = fb_user.gender if fb_user.gender + user.gender = fb_user.gender urls = {} of String => String urls["web"] = fb_user.website.as(String) if fb_user.website @@ -35,7 +35,6 @@ class MultiAuth::Provider::Facebook < MultiAuth::Provider property raw_json : String? property access_token : OAuth2::AccessToken? - property picture_url : String? property picture : NamedTuple( data: NamedTuple( url: String, height: Int64, width: Int64, is_silhouette: Bool)) property gender : String?