class TestApi(unittest.TestCase): def setUp(self): self.smugmug = SmugMug(api_key=API_KEY, api_version='1.2.2', app_name='TestApp') def test_ping(self): rsp = self.smugmug.service_ping() self.assertEqual(rsp['stat'], 'ok') def test_dynamic_method(self): self.smugmug.login_anonymously() rsp = self.smugmug.albums_get(NickName='test') self.assertEqual(rsp['method'], 'smugmug.albums.get') self.smugmug.reset_auth() def test_authorize(self): expected = 'http://api.smugmug.com/services/oauth/authorize.mg?oauth_token=ABC&Access=Public&Permissions=Read' self.smugmug.set_oauth_token('ABC', '123') url = self.smugmug.authorize(access='Public', perm='Read') self.assertEqual(url, expected) self.smugmug.reset_auth() def test_failed_api(self): if sys.version_info < (2, 7): self.assertRaises(SmugMugException, lambda: self.smugmug.bad_apimethod()) else: with self.assertRaises(SmugMugException): self.smugmug.bad_apimethod()
class TestApi(unittest.TestCase): def setUp(self): self.smugmug = SmugMug(api_key=API_KEY, api_version='1.2.2', app_name='TestApp') def test_ping(self): rsp = self.smugmug.service_ping() self.assertEqual(rsp['stat'], 'ok') def test_dynamic_method(self): self.smugmug.login_anonymously() rsp = self.smugmug.albums_get(NickName='test') self.assertEqual(rsp['method'], 'smugmug.albums.get') self.smugmug.reset_auth() def test_authorize(self): expected = 'http://api.smugmug.com/services/oauth/authorize.mg?oauth_token=ABC&Access=Public&Permissions=Read' self.smugmug.set_oauth_token('ABC','123') url = self.smugmug.authorize(access='Public', perm='Read') self.assertEqual(url, expected) self.smugmug.reset_auth() def test_failed_api(self): if sys.version_info < (2, 7): self.assertRaises(SmugMugException, lambda: self.smugmug.bad_apimethod()) else: with self.assertRaises(SmugMugException): self.smugmug.bad_apimethod()
def _smugmugOauthRequestToken(self, access="Public", perm="Read"): smugmug = SmugMug(api_key=self.api_key, oauth_secret=self.oauth_secret, app_name=self.app_name) # Get a token that is short-lived (probably about 5 minutes) and can be used # only to setup authorization at SmugMug response = smugmug.auth_getRequestToken() # Get the URL that the user must visit to authorize this app (implicilty includes the request token in the URL) url = smugmug.authorize(access=access, perm=perm) return url, response['Auth'] # (should contain a 'Token')
def smug_auth(): smugmug = SmugMug(api_key=config.get('smugmug', 'key'), oauth_secret=config.get('smugmug', 'secret'), api_version="1.3.0", app_name="flickr-to-smugmug") if config.has_option('smugmug', 'oauth_token'): smugmug.set_oauth_token(config.get('smugmug', 'oauth_token'), config.get('smugmug', 'oauth_token_secret')) else: smugmug.auth_getRequestToken() get_input("Authorize app at %s\n\nPress Enter when complete.\n" % (smugmug.authorize(access='Full', perm='Modify'))) smugmug.auth_getAccessToken() config.set('smugmug', 'oauth_token', smugmug.oauth_token) config.set('smugmug', 'oauth_token_secret', smugmug.oauth_token_secret) save() return smugmug
def smugmugOauthRequestToken(access="Public", perm="Read"): smugmug = SmugMug(api_key=API_KEY, oauth_secret=OAUTH_SECRET, app_name=APP_NAME) # Get a token that is short-lived (probably about 5 minutes) and can be used # only to setup authorization at SmugMug response = smugmug.auth_getRequestToken() # Get the URL that the user must visit to authorize this app (implicilty includes the request token in the URL) url = smugmug.authorize(access=access, perm=perm) return url, response['Auth'] # (should contain a 'Token')
#!/usr/bin/env python from __future__ import print_function from smugpy import SmugMug import sys #Aliasing for differences in Python 2.x and 3.x if sys.version_info < (3,): get_input = raw_input else: get_input = input API_KEY = "XXXXXXXXXXXXXXXXXXXXXXXXX" OAUTH_SECRET = "YYYYYYYYYYYYYYYYYYYYYYY" smugmug = SmugMug(api_key=API_KEY, oauth_secret=OAUTH_SECRET, app_name="TestApp") #Oauth handshake smugmug.auth_getRequestToken() get_input("Authorize app at %s\n\nPress Enter when complete.\n" % (smugmug.authorize())) smugmug.auth_getAccessToken() albums = smugmug.albums_get(NickName="williams") # Moon River Photography, thanks Andy! for album in albums["Albums"]: print("%s, %s" % (album["id"], album["Title"]))
#!/usr/bin/env python from __future__ import print_function from smugpy import SmugMug import sys #Aliasing for differences in Python 2.x and 3.x if sys.version_info < (3, ): get_input = raw_input else: get_input = input API_KEY = "XXXXXXXXXXXXXXXXXXXXXXXXX" OAUTH_SECRET = "YYYYYYYYYYYYYYYYYYYYYYY" smugmug = SmugMug(api_key=API_KEY, oauth_secret=OAUTH_SECRET, app_name="TestApp") #Oauth handshake smugmug.auth_getRequestToken() get_input("Authorize app at %s\n\nPress Enter when complete.\n" % (smugmug.authorize())) smugmug.auth_getAccessToken() albums = smugmug.albums_get( NickName="williams") # Moon River Photography, thanks Andy! for album in albums["Albums"]: print("%s, %s" % (album["id"], album["Title"]))
API_SECRET = config.get('main', 'api_secret') TOKEN = config.get('main', 'token') SECRET = config.get('main', 'secret') USERNAME = config.get('main', 'smugmug_user') # set up smugmug API smugmug = SmugMug(api_key=API_KEY, oauth_secret=API_SECRET, app_name="get_gallery_links") # oauth if TOKEN and SECRET: smugmug.set_oauth_token(TOKEN, SECRET) response = smugmug.auth_checkAccessToken() #print response else: smugmug.auth_getRequestToken() raw_input("Authorize app at %s\n\nPress Enter when complete.\n" % (smugmug.authorize(access='Full'))) response = smugmug.auth_getAccessToken() print(" token: %s" % response['Auth']['Token']['id']) print(" secret: %s" % response['Auth']['Token']['Secret']) print("Enter these values into smugmuglinkgen.conf to skip this auth process the next time around.") # the real work starts here albums = smugmug.albums_get(NickName=USERNAME) for album in albums['Albums']: if arguments['list']: print(album['Title']) else: if arguments['<albumname>'] in album['Title']: print("Processing %s, %s" % (album['id'], album['Title'])) images = smugmug.images_get(AlbumID=album['id'], AlbumKey=album['Key'], Heavy=True) for image in images['Album']['Images']: