@@ -403,7 +403,9 @@ class FacebookAuthorization(FacebookConnection):
403403    ''' 
404404    @classmethod  
405405    def  convert_code (cls , code ,
406-                      redirect_uri = 'http://local.mellowmorning.com:8000/facebook/connect/' ):
406+                      redirect_uri = 'http://local.mellowmorning.com:8000/facebook/connect/' ,
407+                      client_id = facebook_settings .FACEBOOK_APP_SECRET ,
408+                      client_secret = facebook_settings .FACEBOOK_APP_SECRET ):
407409        ''' 
408410        Turns a code into an access token 
409411
@@ -420,14 +422,16 @@ def convert_code(cls, code,
420422        :returns: dict 
421423
422424        ''' 
423-         kwargs  =  cls ._client_info ()
425+         kwargs  =  cls ._client_info (client_id ,  client_secret )
424426        kwargs ['code' ] =  code 
425427        kwargs ['redirect_uri' ] =  redirect_uri 
426428        response  =  cls .request ('oauth/access_token' , ** kwargs )
427429        return  response 
428430
429431    @classmethod  
430-     def  extend_access_token (cls , access_token ):
432+     def  extend_access_token (cls , access_token ,
433+                             client_id = facebook_settings .FACEBOOK_APP_SECRET ,
434+                             client_secret = facebook_settings .FACEBOOK_APP_SECRET ):
431435        ''' 
432436        https://developers.facebook.com/roadmap/offline-access-removal/ 
433437        We can extend the token only once per day 
@@ -443,17 +447,15 @@ def extend_access_token(cls, access_token):
443447
444448        :returns: dict 
445449        ''' 
446-         kwargs  =  cls ._client_info ()
450+         kwargs  =  cls ._client_info (client_id ,  client_secret )
447451        kwargs ['grant_type' ] =  'fb_exchange_token' 
448452        kwargs ['fb_exchange_token' ] =  access_token 
449453        response  =  cls .request ('oauth/access_token' , ** kwargs )
450454        return  response 
451455
452456    @classmethod  
453-     def  _client_info (cls ):
454-         kwargs  =  dict (client_id = facebook_settings .FACEBOOK_APP_ID )
455-         kwargs ['client_secret' ] =  facebook_settings .FACEBOOK_APP_SECRET 
456-         return  kwargs 
457+     def  _client_info (cls , client_id , client_secret ):
458+         return  dict (client_id = client_id , client_secret = client_secret )
457459
458460    @classmethod  
459461    def  parse_signed_data (cls , signed_request ,
@@ -495,20 +497,25 @@ def parse_signed_data(cls, signed_request,
495497            return  data 
496498
497499    @classmethod  
498-     def  get_app_access_token (cls ):
500+     def  get_app_access_token (cls ,  * args ,  ** kwargs ):
499501        ''' 
500502        Get the access_token for the app that can be used for 
501503        insights and creating test users 
502504        application_id = retrieved from the developer page 
503505        application_secret = retrieved from the developer page 
504506        returns the application access_token 
505507        ''' 
506-         kwargs  =  {
508+         facebook_app_id  =  kwargs .get (facebook_settings .FACEBOOK_APP_ID_KWARGS ,
509+                                     facebook_settings .FACEBOOK_APP_ID )
510+         facebook_app_secret  =  kwargs .get (facebook_settings .FACEBOOK_APP_SECRET_KWARGS ,
511+                                     facebook_settings .FACEBOOK_APP_SECRET )
512+ 
513+         data  =  {
507514            'grant_type' : 'client_credentials' ,
508-             'client_id' : facebook_settings . FACEBOOK_APP_ID ,
509-             'client_secret' : facebook_settings . FACEBOOK_APP_SECRET ,
515+             'client_id' : facebook_app_id ,
516+             'client_secret' : facebook_app_secret ,
510517        }
511-         response  =  cls .request ('oauth/access_token' , ** kwargs )
518+         response  =  cls .request ('oauth/access_token' , ** data )
512519        return  response ['access_token' ]
513520
514521    @memoized  
@@ -521,7 +528,7 @@ def get_cached_app_access_token(cls):
521528        return  app_access_token 
522529
523530    @classmethod  
524-     def  create_test_user (cls , app_access_token , permissions = None , name = None ):
531+     def  create_test_user (cls , app_access_token , permissions = None , name = None ,  * args ,  ** kwargs ):
525532        ''' 
526533        Creates a test user with the given permissions and name 
527534
@@ -544,16 +551,19 @@ def create_test_user(cls, app_access_token, permissions=None, name=None):
544551            ',' , ' ' ).replace ('_' , '' )
545552        name  =  name  or  default_name 
546553
547-         kwargs  =  {
554+         facebook_app_id  =  kwargs .get (facebook_settings .FACEBOOK_APP_ID_KWARGS ,
555+                                     facebook_settings .FACEBOOK_APP_ID )
556+ 
557+         data  =  {
548558            'access_token' : app_access_token ,
549559            'installed' : True ,
550560            'name' : name ,
551561            'method' : 'post' ,
552562            'permissions' : permissions ,
553563        }
554-         path  =  '%s/accounts/test-users'  %  facebook_settings . FACEBOOK_APP_ID 
564+         path  =  '%s/accounts/test-users'  %  facebook_app_id 
555565        # add the test user data to the test user data class 
556-         test_user_data  =  cls .request (path , ** kwargs )
566+         test_user_data  =  cls .request (path , ** data )
557567        test_user_data ['name' ] =  name 
558568        test_user  =  TestUser (test_user_data )
559569
@@ -615,11 +625,13 @@ def get_or_create_test_user(cls, app_access_token, name=None, permissions=None,
615625        return  test_user 
616626
617627    @classmethod  
618-     def  get_test_users (cls , app_access_token ):
619-         kwargs  =  dict (access_token = app_access_token )
620-         path  =  '%s/accounts/test-users'  %  facebook_settings .FACEBOOK_APP_ID 
628+     def  get_test_users (cls , app_access_token , * args , ** kwargs ):
629+         data  =  dict (access_token = app_access_token )
630+         facebook_app_id  =  kwargs .get (facebook_settings .FACEBOOK_APP_ID_KWARGS ,
631+                                     facebook_settings .FACEBOOK_APP_ID )
632+         path  =  '%s/accounts/test-users'  %  facebook_app_id 
621633        # retrieve all test users 
622-         response  =  cls .request (path , ** kwargs )
634+         response  =  cls .request (path , ** data )
623635        test_users  =  response ['data' ]
624636        return  test_users 
625637
0 commit comments