Skip to content

Instantly share code, notes, and snippets.

@hSATAC
Forked from zonble/FacebookTestAccount.py
Created March 5, 2013 06:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save hSATAC/5088357 to your computer and use it in GitHub Desktop.
Save hSATAC/5088357 to your computer and use it in GitHub Desktop.
import urllib, urllib2, json
class FacebookTestUserManager:
'''
A tool which helps to create and delete test account for
Facebook.
See https://developers.facebook.com/docs/test_users/
'''
def __init__(self, facebookAppID, facebookSecret):
self.app_id = facebookAppID
self.app_secret = facebookSecret
self.app_access_token = None
def _obtain_app_access_token(self):
GET_parameters = {'client_id': self.app_id,
'client_secret': self.app_secret,
'grant_type': 'client_credentials'}
URL = "https://graph.facebook.com/oauth/access_token?" + \
urllib.urlencode(GET_parameters)
response = urllib2.urlopen(URL).read()
return response[len('access_token='):]
def create_test_account(self, user_name = 'test_user',
permissions=["email", "publish_stream",
"user_about_me", "publish_actions"]):
if self.app_access_token == None:
self.app_access_token = self._obtain_app_access_token()
GET_parameters = {'installed': 'true',
'name': user_name,
'locale': 'en_US',
'method': 'post',
'access_token': self.app_access_token}
URL = "https://graph.facebook.com/%s/accounts/test-users?" % self.app_id
URL += urllib.urlencode(GET_parameters)
URL += '&permissions=%s' % ','.join(permissions)
response = urllib2.urlopen(URL).read()
return json.loads(response)
def delete_test_user(self, user_id):
if self.app_access_token == None:
self.app_access_token = self._obtain_app_access_token()
GET_parameters = {'method': 'delete',
'access_token': self.app_access_token}
URL = "https://graph.facebook.com/%s/?" % user_id
URL += urllib.urlencode(GET_parameters)
response = urllib2.urlopen(URL).read()
return json.loads(response)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment