def getFriendsPlurk(oauth_token, oauth_token_secret, body): from plurk_oauth.PlurkAPI import PlurkAPI #body = urllib.urlencode(body) plurk = PlurkAPI(settings.PLURK_APP_KEY, settings.PLURK_APP_SECRET) plurk.authorize(oauth_token, oauth_token_secret) dd = plurk.callAPI('/APP/FriendsFans/getFriendsByOffset', body) return dd
class Test1AccessTokenSecret(unittest.TestCase): def setUp(self): try: file = open('API.keys', 'r+') except IOError: print "You need to put key/secret in API.keys" raise except: print "Unexpected error:", sys.exc_info()[0] else: data = json.load(file) file.close() self.plurk = PlurkAPI(data["CONSUMER_KEY"], data["CONSUMER_SECRET"]) def teardown(self): pass def test_invalid_access_key(self): self.plurk.authorize("foor", "bar") r = self.plurk.callAPI('/APP/Profile/getOwnProfile') self.assertIsNone(r) err = self.plurk.error() self.assertEqual(err['code'], "400") self.assertEqual(err['reason'], "BAD REQUEST") self.assertEqual(err['content']['error_text'], "40106:invalid access token")
def test_invalid_consumer_key(self): self.plurk = PlurkAPI("token", "secret") r = self.plurk.callAPI('/APP/Profile/getPublicProfile', {'user_id': 'clsung'}) self.assertIsNone(r) err = self.plurk.error() self.assertEqual(err['code'], "400") self.assertEqual(err['reason'], "BAD REQUEST") self.assertEqual(err['content']['error_text'], "40101:unknown application key")
class TestAPIAuth(unittest.TestCase): ''' Unit test for PlurkAPI auth part ''' def setUp(self): self.mox = mox.Mox() self.api = PlurkAPI('CONSUMER_KEY', 'CONSUMER_SECRET') self.oauth_response = \ 'oauth_token_secret=O7WqqqWHA61f4ZE5izQdTQmK&oauth_token=ReqXBFOswcyR&oauth_callback_confirmed=true' self.verify_response = \ 'oauth_token_secret=O7WqqqWHA61f4ZE5izQdTQmK&oauth_token=ReqXBFOswcyR' self.golden_token = { 'key': 'ReqXBFOswcyR', 'secret': 'O7WqqqWHA61f4ZE5izQdTQmK', } self.golden_url = 'http://www.plurk.com/OAuth/authorize?oauth_token=ReqXBFOswcyR' self.mox.StubOutWithMock(PlurkOAuth, 'request') def tearDown(self): self.mox.UnsetStubs() def _200_request(self): return 200, self.oauth_response, "" def _200_verify(self): return 200, self.verify_response, '' def test_set_request_token(self): self.api.set_request_token('ReqXBFOswcyR', 'O7WqqqWHA61f4ZE5izQdTQmK') token = self.api.get_request_token() self.assertEqual(self.golden_token, token) self.mox.VerifyAll() def test_get_request_token(self): self.api._oauth.request(mox.IgnoreArg()).AndReturn(self._200_request()) self.mox.ReplayAll() token = self.api.get_request_token() self.assertEqual(self.golden_token, token) self.mox.VerifyAll() def test_get_verifier_url(self): self.api.set_request_token('ReqXBFOswcyR', 'O7WqqqWHA61f4ZE5izQdTQmK') url = self.api.get_verifier_url() self.assertEqual(self.golden_url, url) self.mox.VerifyAll() def test_get_access_token(self): self.api._oauth.request(mox.IgnoreArg(), mox.IgnoreArg()).AndReturn(self._200_verify()) self.mox.ReplayAll() self.api.set_request_token('ReqXBFOswcyR', 'O7WqqqWHA61f4ZE5izQdTQmK') token = self.api.get_access_token('VERIFIER') self.assertEqual(self.golden_token, token) self.mox.VerifyAll()
def setUp(self): try: file = open('API.keys', 'r+') except IOError: print "You need to put key/secret in API.keys" raise except: print "Unexpected error:", sys.exc_info()[0] else: data = json.load(file) file.close() self.plurk = PlurkAPI(data["CONSUMER_KEY"], data["CONSUMER_SECRET"])
def setUp(self): self.mox = mox.Mox() self.api = PlurkAPI('CONSUMER_KEY', 'CONSUMER_SECRET') self.oauth_response = \ 'oauth_token_secret=O7WqqqWHA61f4ZE5izQdTQmK&oauth_token=ReqXBFOswcyR&oauth_callback_confirmed=true' self.verify_response = \ 'oauth_token_secret=O7WqqqWHA61f4ZE5izQdTQmK&oauth_token=ReqXBFOswcyR' self.golden_token = { 'key': 'ReqXBFOswcyR', 'secret': 'O7WqqqWHA61f4ZE5izQdTQmK', } self.golden_url = 'http://www.plurk.com/OAuth/authorize?oauth_token=ReqXBFOswcyR' self.mox.StubOutWithMock(PlurkOAuth, 'request')
class TestAPIAuth(unittest.TestCase): """ Unit test for PlurkAPI auth part """ def setUp(self): self.mox = mox.Mox() self.api = PlurkAPI("CONSUMER_KEY", "CONSUMER_SECRET") self.oauth_response = ( "oauth_token_secret=O7WqqqWHA61f4ZE5izQdTQmK&oauth_token=ReqXBFOswcyR&oauth_callback_confirmed=true" ) self.verify_response = "oauth_token_secret=O7WqqqWHA61f4ZE5izQdTQmK&oauth_token=ReqXBFOswcyR" self.golden_token = {"key": "ReqXBFOswcyR", "secret": "O7WqqqWHA61f4ZE5izQdTQmK"} self.golden_url = "http://www.plurk.com/OAuth/authorize?oauth_token=ReqXBFOswcyR" self.mox.StubOutWithMock(PlurkOAuth, "request") def tearDown(self): self.mox.UnsetStubs() def _200_request(self): return 200, self.oauth_response, "" def _200_verify(self): return 200, self.verify_response, "" def test_set_request_token(self): self.api.set_request_token("ReqXBFOswcyR", "O7WqqqWHA61f4ZE5izQdTQmK") token = self.api.get_request_token() self.assertEqual(self.golden_token, token) self.mox.VerifyAll() def test_get_request_token(self): self.api._oauth.request(mox.IgnoreArg()).AndReturn(self._200_request()) self.mox.ReplayAll() token = self.api.get_request_token() self.assertEqual(self.golden_token, token) self.mox.VerifyAll() def test_get_verifier_url(self): self.api.set_request_token("ReqXBFOswcyR", "O7WqqqWHA61f4ZE5izQdTQmK") url = self.api.get_verifier_url() self.assertEqual(self.golden_url, url) self.mox.VerifyAll() def test_get_access_token(self): self.api._oauth.request(mox.IgnoreArg(), mox.IgnoreArg()).AndReturn(self._200_verify()) self.mox.ReplayAll() self.api.set_request_token("ReqXBFOswcyR", "O7WqqqWHA61f4ZE5izQdTQmK") token = self.api.get_access_token("VERIFIER") self.assertEqual(self.golden_token, token) self.mox.VerifyAll()
class TestTwoLeggedAPI(unittest.TestCase): def setUp(self): try: file = open('API.keys', 'r+') except IOError: print "You need to put key/secret in API.keys" raise except: print "Unexpected error:", sys.exc_info()[0] else: data = json.load(file) file.close() self.plurk = PlurkAPI(data["CONSUMER_KEY"], data["CONSUMER_SECRET"]) def teardown(self): pass def test_get_public_profile(self): jdata = self.plurk.callAPI('/APP/Profile/getPublicProfile', {'user_id': 'clsung'}) self.assertIsInstance(jdata, dict, "Object is a dict") self.assertGreater(jdata['user_info']['uid'], 0, "Self Uid > 0") self.assertEqual(jdata['user_info']['nick_name'], "clsung", "Author's Name ;)")
def __getAPI__( user ): try: token = Access.objects.get( user__exact = user ) except Access.DoesNotExist: # TODO report error raise api = PlurkAPI( plurk.CONSUMER_KEY, plurk.CONSUMER_SECRET, token.key, token.secret ) return api
def test_invalid_consumer_key(self): self.plurk = PlurkAPI("token", "secret") r = self.plurk.callAPI("/APP/Profile/getPublicProfile", {"user_id": "clsung"}) self.assertIsNone(r) err = self.plurk.error() self.assertEqual(err["code"], "400") self.assertEqual(err["reason"], "BAD REQUEST") self.assertEqual(err["content"]["error_text"], "40101:unknown application key")
def callback( request ): try: requestKey = request.GET['oauth_token'] verifier = request.GET['oauth_verifier'] except Exception: # TODO error page raise try: requestToken = Request.objects.get( user__exact = request.user ) except Request.DoesNotExist: # TODO error page raise api = PlurkAPI( plurk.CONSUMER_KEY, plurk.CONSUMER_SECRET ) api._oauth.oauth_token['oauth_token'] = requestToken.key api._oauth.oauth_token['oauth_token_secret'] = requestToken.secret requestToken.delete() try: api._oauth.get_access_token( verifier ) accessKey = api._oauth.oauth_token['oauth_token'] accessSecret = api._oauth.oauth_token['oauth_token_secret'] except Exception: # TODO error page raise try: record = Access.objects.get( user__exact = request.user ) record.key = accessKey record.secret = accessSecret except Access.DoesNotExist: record = Access( user = request.user, key = accessKey, secret = accessSecret ) record.save() # add read id for user me = api.callAPI( '/APP/Profile/getOwnProfile' ) if me == None: raise Exception( api.error() ) me = me['user_info']['nick_name'] try: realID = RealID.objects.get( user__exact = request.user, account__exact = me ) realID.name = request.user.username except RealID.DoesNotExist: realID = RealID( user = request.user, name = request.user.username, account = me ) realID.save() return redirect( '/' )
def setUp(self): self.mox = mox.Mox() self.api = PlurkAPI("CONSUMER_KEY", "CONSUMER_SECRET") self.oauth_response = ( "oauth_token_secret=O7WqqqWHA61f4ZE5izQdTQmK&oauth_token=ReqXBFOswcyR&oauth_callback_confirmed=true" ) self.verify_response = "oauth_token_secret=O7WqqqWHA61f4ZE5izQdTQmK&oauth_token=ReqXBFOswcyR" self.golden_token = {"key": "ReqXBFOswcyR", "secret": "O7WqqqWHA61f4ZE5izQdTQmK"} self.golden_url = "http://www.plurk.com/OAuth/authorize?oauth_token=ReqXBFOswcyR" self.mox.StubOutWithMock(PlurkOAuth, "request")
class Test0ConsumerTokenSecret(unittest.TestCase): def setUp(self): pass def teardown(self): pass def test_no_consumer_key(self): with self.assertRaises(ValueError): self.plurk = PlurkAPI() self.plurk.callAPI("/APP/Profile/getPublicProfile", {"user_id": "clsung"}) def test_invalid_consumer_key(self): self.plurk = PlurkAPI("token", "secret") r = self.plurk.callAPI("/APP/Profile/getPublicProfile", {"user_id": "clsung"}) self.assertIsNone(r) err = self.plurk.error() self.assertEqual(err["code"], "400") self.assertEqual(err["reason"], "BAD REQUEST") self.assertEqual(err["content"]["error_text"], "40101:unknown application key")
class Test0ConsumerTokenSecret(unittest.TestCase): def setUp(self): pass def teardown(self): pass def test_no_consumer_key(self): with self.assertRaises(ValueError): self.plurk = PlurkAPI() self.plurk.callAPI('/APP/Profile/getPublicProfile', {'user_id': 'clsung'}) def test_invalid_consumer_key(self): self.plurk = PlurkAPI("token", "secret") r = self.plurk.callAPI('/APP/Profile/getPublicProfile', {'user_id': 'clsung'}) self.assertIsNone(r) err = self.plurk.error() self.assertEqual(err['code'], "400") self.assertEqual(err['reason'], "BAD REQUEST") self.assertEqual(err['content']['error_text'], "40101:unknown application key")
def connect( request ): api = PlurkAPI( plurk.CONSUMER_KEY, plurk.CONSUMER_SECRET ) api._oauth.get_request_token() # store request token for next step uri = api._oauth.get_verifier_url() try: requestToken = Request.objects.get( user__exact = request.user ) requestToken.key = api._oauth.oauth_token['oauth_token'] requestToken.secret = api._oauth.oauth_token['oauth_token_secret'] except Request.DoesNotExist: requestToken = Request( user = request.user, key = api._oauth.oauth_token['oauth_token'], secret = api._oauth.oauth_token['oauth_token_secret'] ) requestToken.save() return redirect( uri )
class TestTwoLeggedAPI(unittest.TestCase): def setUp(self): try: file = open("API.keys", "r+") except IOError: print "You need to put key/secret in API.keys" raise except: print "Unexpected error:", sys.exc_info()[0] else: data = json.load(file) file.close() self.plurk = PlurkAPI(data["CONSUMER_KEY"], data["CONSUMER_SECRET"]) def teardown(self): pass def test_get_public_profile(self): jdata = self.plurk.callAPI("/APP/Profile/getPublicProfile", {"user_id": "clsung"}) self.assertIsInstance(jdata, dict, "Object is a dict") self.assertGreater(jdata["user_info"]["uid"], 0, "Self Uid > 0") self.assertEqual(jdata["user_info"]["nick_name"], "clsung", "Author's Name ;)")
def plurk_authorize( ): plurk = PlurkAPI("GZpz46uhKUJv", "EWoX6KK9laSEOhtWCJt8n6xZUmvxrliq") plurk.authorize("UNtfaxzZFPI2", "BXP7E9V8GVrHFWJaIDCiZ2ArXKF0xrB8") return plurk
def init(consumer_key = CONSUMER_KEY, consumer_secret = CONSUMER_SECRET, app_token = APP_TOKEN, app_secret = APP_SECRET): return PlurkAPI(consumer_key, consumer_secret, app_token, app_secret)
from sys import argv from plurk_oauth.PlurkAPI import PlurkAPI import json import socket plurk = PlurkAPI("TmJ2fUfRcy3X", "kuBsGZH8qBw34h9uytZgNWFC37PkYv66") plurk.authorize("fqG3DURTDfvA", "EcpTJdGsxHEaCx4TxIMlKR1tksPEuf09") script, filename = argv infile = open(filename, "r") filename_prefix = filename.split("/")[-1] total_length = len(infile.read().split("\n")) infile.close() infile = open(filename, "r") errorfile = open("error/%s.error.txt" % (filename_prefix), "w") outf = open("result/%s.user_table.txt" % (filename_prefix), "w") #print >> outfile, (string[0] + "\tgender") i = 0 for l in infile: tmp = l.strip().split("\t") userid = tmp[0] try: temp = plurk.callAPI("/APP/Profile/getPublicProfile", {"user_id": userid}) except: continue
'plurk_id': p['plurk_id'], 'content': resp.encode('utf-8'), 'qualifier': 'likes' }) db.insert_findSongs( user, p['plurk_id'], name, songs[0]['id'], songs[1]['id'] ) if __name__ == "__main__": # 初始化 plurk = PlurkAPI.fromfile('API.keys') if plurk: # 自動加入所有好友 plurk.callAPI('/APP/Alerts/addAllAsFriends') # 記一下自己的plurk id myID = str(plurk.callAPI('/APP/Users/me')['id']) # Database db = DB(dburl='sqlite:///db/pypyNPC.db') # Start NPC npc()
def setUp(self): self.plurk = PlurkAPI.fromfile('API.keys') if not self.plurk.is_authorized: raise KeyError("You need to put cunsomer/access key/secret in API.keys")
def test_no_consumer_key(self): with self.assertRaises(ValueError): self.plurk = PlurkAPI() self.plurk.callAPI("/APP/Profile/getPublicProfile", {"user_id": "clsung"})
def test_no_consumer_key(self): with self.assertRaises(ValueError): self.plurk = PlurkAPI() self.plurk.callAPI('/APP/Profile/getPublicProfile', {'user_id': 'clsung'})
from sys import argv from plurk_oauth.PlurkAPI import PlurkAPI import json import socket plurk = PlurkAPI("TmJ2fUfRcy3X", "kuBsGZH8qBw34h9uytZgNWFC37PkYv66") plurk.authorize("fqG3DURTDfvA", "EcpTJdGsxHEaCx4TxIMlKR1tksPEuf09") script, filename= argv infile = open(filename, "r") filename_prefix= filename.split("/")[-1] total_length = len( infile.read().split("\n") ) infile.close() infile = open(filename, "r") errorfile = open("error/%s.error.txt" %( filename_prefix ) , "w") outf = open("result/%s.user_table.txt" %( filename_prefix ), "w") #print >> outfile, (string[0] + "\tgender") i= 0 for l in infile: tmp = l.strip().split("\t") userid = tmp[0] try:
from plurk_oauth.PlurkAPI import PlurkAPI from collections import OrderedDict import traceback import scraperwiki import sys import json api_key = "REDACTED" api_secret = "REDACTED" argument = sys.argv[1] plurk = PlurkAPI(api_key, api_secret) class InvalidArgumentError(Exception): pass def main(): try: if len(sys.argv) != 2: raise InvalidArgumentError( "Please supply a single argument. An example would be 'kittens'" ) else: search_plurk(argument) except Exception, e: scraperwiki.status('error', type(e).__name__) print json.dumps({ 'error': {