快速启动
在使用upwork api之前,您需要获取一对api密钥。
访问Upwork API Center documentation
详细情况。请注意,flask upwork通过oauth使用授权,它需要auth类型为“oauth”的密钥。
请确保会话所需的基于安全cookies的密钥已在设置中指明。py:
SECRET_KEY = '(your random secret key)'
您需要将一对upwork api密钥存储在settings.py中::
ODESK_KEY = '(your Upwork public key)'
ODESK_SECRET = '(your Upwork secret key)'
您还可以在settings.py中设置团队列表,该列表将能够授权。
如果不指定此选项或将列表保留为空,则所有upwork用户都可以授权:
ODESK_AUTH_TEAMS = ('teamname',)
请确保您已在app.py中正确注册了upwork模块。
请记住,url前缀可以是您喜欢的任何内容:
from flask import Flask
from flaskext.odesk import odesk
app = Flask(__name__)
app.config.from_pyfile('settings.py')
app.register_module(odesk, url_prefix='/odesk')
使用授权
请使用decorator所需的登录名关闭匿名用户对网站某些部分的访问:
@app.route('/only/for/odesk/users')
@odesk.login_required
def admin():
return "Welcome, Upwork user!"
如果您想在模板中指明登录或注销链接,则可以使用url\u来执行功能,并且odesk\u已授权变量:
{% if odesk_is_authorized %}
<a href="{{ url_for('odesk.logout') }}">Log out</a>
{% else %}
<a href="{{ url_for('odesk.login') }}">Upwork log in</a>
{% endif %}
要检查当前用户的授权,您可以使用已授权的方法:
@app.route('/test')
def test():
if odesk.is_authorized():
return "You are authorized."
else:
return "You are not authorized yet."
如果需要,可以从代码中手动启动授权过程:
if not odesk.is_authorized():
return odesk.login()
您还可以使用next参数来指示url,在授权过程结束后将重定向到哪里:
if not odesk.is_authorized():
return odesk.login(next='/blah/blah')
您可以使用注销方法来注销用户。
请注意,与登录不同,此方法不会返回大量重定向。
它只是删除oauth会话。您应该手动返回响应:
if odesk.is_authorized():
odesk.logout()
return redirect('/')
如果要展开自动调整过程,可以在登录后使用decorator,
表示您的函数,在成功授权后将调用该函数:
@odesk.after_login
def save_session():
# Getting current user's data. Please, see below how to use the Client.
session['user'] = odesk.get_client().hr.get_user('me')
如果您在登录后使用了并将某些内容保存到会话中,请,
注销后不要忘记删除此会话,请在注销后使用decorator:
@odesk.after_logout
def delete_session():
if 'user' in session:
del session['user']