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
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 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')
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 )
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 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
def test_no_consumer_key(self): with self.assertRaises(ValueError): self.plurk = PlurkAPI() self.plurk.callAPI('/APP/Profile/getPublicProfile', {'user_id': 'clsung'})
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': {