Consuming
Oauth for two
A healthy serving of
open authentication with oauth2
A healthy serving of
open authentication with oauth2




1) authorization server *
2) token server *
3) choose your profile
* these can be the same
curl https://secure.meetup.com/oauth2/authorize?client_id=g1b3r1sh &response_type=code &redirect_uri=http://your.com/post-auth &state=optional-but-recommended
curl https://secure.meetup.com/oauth2/authorize ?client_id=g1b3r1sh &response_type=code &redirect_uri=http://your.com/post-auth &state=optional-but-recommended
curl https://secure.meetup.com/oauth2/authorize ?client_id=g1b3r1sh &response_type=code &redirect_uri=http://your.com/post-auth &state=optional-but-recommended
curl https://secure.meetup.com/oauth2/authorize ?client_id=g1b3r1sh &response_type=code &redirect_uri=http://your.com/post-auth &state=optional-but-recommended
http://your.com/post-oauth ?code=temp-token &state=optional-but-recommended
curl -X POST https://secure.meetup.com/oauth2/access -F 'client_id=g1b3r1sh' -F 'client_secret=s3cr3tg1b3r1sh' -F 'redirect_uri=http://your.com/post-auth' -F 'grant_type=authorization_code' -F 'code=code_you_just_got'
curl -X POST https://secure.meetup.com/oauth2/access -F 'client_id=g1b3r1sh' -F 'client_secret=s3cr3tg1b3r1sh' -F 'redirect_uri=http://your.com/post-auth' -F 'grant_type=authorization_code' -F 'code=code_you_just_got'
curl -X POST https://secure.meetup.com/oauth2/access -F 'client_id=g1b3r1sh' -F 'client_secret=s3cr3tg1b3r1sh' -F 'redirect_uri=http://your.com/post-auth' -F 'grant_type=authorization_code' -F 'code=code_you_just_got'
curl -X POST https://secure.meetup.com/oauth2/access
-F 'client_id=g1b3r1sh'
-F 'client_secret=s3cr3tg1b3r1sh'
-F 'redirect_uri=http://your.com/post-auth'
-F 'grant_type=authorization_code'
-F 'code=code_you_just_got'
{
"access_token": "k33pm3s3c3r3t",
"expires_in": 3600,
"refresh_token": "al30k33pm3s3cr3t"
}
curl https://api.meetup.com/2/member/self ?access_token=k33pm3s3cf3t
from urllib2 import (Request, openurl, urlencode,
HttpError)
def get(path, params = {}):
try:
parse(openurl(Request("%s%s?%s" % (
host, path,
urlencode(with_access(params)))).read())
except HTTPError, e:
# dirty jobs
except HTTP, e: if(e.code == 401): # denied try: # freshen up reset(parse(openurl(Request(TOKEN_URI, data = { 'client_id':'g1b3r1sh' 'client_secret':'s3cr3tg1b3r1sh' 'grant_type':'refresh_token', 'refresh_token':'al30k33pm3s3cr3t' })).read())) return get(path, params) except HttpError, e2: # revoked raise WhiteFlag
'code-demo': intermission