MDL-61826 auth: Make Facebook endpoints more maintainable
authorJun Pataleta <jun@moodle.com>
Wed, 6 Jun 2018 04:09:38 +0000 (12:09 +0800)
committerJun Pataleta <jun@moodle.com>
Wed, 6 Jun 2018 04:44:24 +0000 (12:44 +0800)
lib/classes/oauth2/api.php

index 179910d..6c39562 100644 (file)
@@ -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) {