60 lines
2.9 KiB
Python
60 lines
2.9 KiB
Python
|
import webbrowser
|
||
|
import scapi
|
||
|
|
||
|
# the host to connect to. Normally, this
|
||
|
# would be api.soundcloud.com
|
||
|
API_HOST = "api.soundcloud.com"
|
||
|
|
||
|
# This needs to be the consumer ID you got from
|
||
|
# http://soundcloud.com/settings/applications/new
|
||
|
CONSUMER = "2CLCxcSXYzx7QhhPVHN4A"
|
||
|
# This needs to be the consumer secret password you got from
|
||
|
# http://soundcloud.com/settings/applications/new
|
||
|
CONSUMER_SECRET = "pZ7beWmF06epXLHVUP1ufOg2oEnIt9XhE8l8xt0bBs"
|
||
|
|
||
|
# first, we create an OAuthAuthenticator that only knows about consumer
|
||
|
# credentials. This is done so that we can get an request-token as
|
||
|
# first step.
|
||
|
oauth_authenticator = scapi.authentication.OAuthAuthenticator(CONSUMER,
|
||
|
CONSUMER_SECRET,
|
||
|
None,
|
||
|
None)
|
||
|
|
||
|
# The connector works with the authenticator to create and sign the requests. It
|
||
|
# has some helper-methods that allow us to do the OAuth-dance.
|
||
|
connector = scapi.ApiConnector(host=API_HOST, authenticator=oauth_authenticator)
|
||
|
|
||
|
# First step is to get a request-token, and to let the user authorize that
|
||
|
# via the browser.
|
||
|
token, secret = connector.fetch_request_token()
|
||
|
authorization_url = connector.get_request_token_authorization_url(token)
|
||
|
webbrowser.open(authorization_url)
|
||
|
oauth_verifier = raw_input("please enter verifier code as seen in the browser:")
|
||
|
|
||
|
# Now we create a new authenticator with the temporary token & secret we got from
|
||
|
# the request-token. This will give us the access-token
|
||
|
oauth_authenticator = scapi.authentication.OAuthAuthenticator(CONSUMER,
|
||
|
CONSUMER_SECRET,
|
||
|
token,
|
||
|
secret)
|
||
|
|
||
|
# we need a new connector with the new authenticator!
|
||
|
connector = scapi.ApiConnector(API_HOST, authenticator=oauth_authenticator)
|
||
|
token, secret = connector.fetch_access_token(oauth_verifier)
|
||
|
|
||
|
|
||
|
# now we are finally ready to go - with all four parameters OAuth requires,
|
||
|
# we can setup an authenticator that allows for actual API-calls.
|
||
|
oauth_authenticator = scapi.authentication.OAuthAuthenticator(CONSUMER,
|
||
|
CONSUMER_SECRET,
|
||
|
token,
|
||
|
secret)
|
||
|
|
||
|
# we pass the connector to a Scope - a Scope is essentially a path in the REST-url-space.
|
||
|
# Without any path-component, it's the root from which we can then query into the
|
||
|
# resources.
|
||
|
root = scapi.Scope(scapi.ApiConnector(host=API_HOST, authenticator=oauth_authenticator))
|
||
|
|
||
|
# Hey, nice meeting you! Connected to SoundCloud using OAuth will allow you to access protected resources, like the current user's name.
|
||
|
print "Hello, %s" % root.me().username
|