From b8df0041efda41a9168be54db5df3aff3a59dd9f Mon Sep 17 00:00:00 2001 From: Jun Pataleta Date: Wed, 6 Jun 2018 12:09:38 +0800 Subject: [PATCH] MDL-61826 auth: Make Facebook endpoints more maintainable --- lib/classes/oauth2/api.php | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/lib/classes/oauth2/api.php b/lib/classes/oauth2/api.php index 179910da1f8..6c39562e996 100644 --- a/lib/classes/oauth2/api.php +++ b/lib/classes/oauth2/api.php @@ -86,10 +86,24 @@ class api { $issuer = new issuer(0, $record); $issuer->create(); + // The Facebook API version. + $apiversion = '2.12'; + // The Graph API URL. + $graphurl = 'https://graph.facebook.com/v' . $apiversion; + // User information fields that we want to fetch. + $infofields = [ + 'id', + 'first_name', + 'last_name', + 'link', + 'picture.type(large)', + 'name', + 'email', + ]; $endpoints = [ - 'authorization_endpoint' => 'https://www.facebook.com/v2.12/dialog/oauth', - 'token_endpoint' => 'https://graph.facebook.com/v2.12/oauth/access_token', - 'userinfo_endpoint' => 'https://graph.facebook.com/v2.12/me?fields=id,first_name,last_name,link,picture.type(large),name,email' + 'authorization_endpoint' => sprintf('https://www.facebook.com/v%s/dialog/oauth', $apiversion), + 'token_endpoint' => $graphurl . '/oauth/access_token', + 'userinfo_endpoint' => $graphurl . '/me?fields=' . implode(',', $infofields) ]; foreach ($endpoints as $name => $url) {