openshift

时间:2016-01-10 16:18:07

标签: python flask openshift dropbox-api

我无法在openshift平台上成功执行http://flask-dance.readthedocs.org/en/latest/quickstarts/dropbox.html的示例。

from flask import Flask, redirect, url_for
from flask_dance.contrib.dropbox import make_dropbox_blueprint, dropbox

app = Flask(__name__)
app.secret_key = "supersekrit"
blueprint = make_dropbox_blueprint(
    app_key="my-key-here",
    app_secret="my-secret-here",
)
app.register_blueprint(blueprint, url_prefix="/login")

@app.route("/")
def index():
    if not dropbox.authorized:
        return redirect(url_for("dropbox.login"))
    resp = dropbox.get("account/info")
    assert resp.ok
    return "You are {email} on Dropbox".format(email=resp.json()["email"])

if __name__ == "__main__":
    app.run()

我收到传输错误(openshift尝试使用HTTP uri而不是HTTPS),或者我尝试设置

  

os.environ [' OAUTHLIB_INSECURE_TRANSPORT'] =' 1'

(我知道不建议用于安全性)然后我得到

  

InvalidClientIdError :( invalid_request)无法使用"授权"   标题和" client_secret" arg together。

本地和开放平台上。

有关上述示例中的调整内容的任何建议吗?

2 个答案:

答案 0 :(得分:1)

您是否熟悉如何在openshift上部署基本的烧瓶应用程序。以下是官方openshift文档https://developers.openshift.com/en/python-flask.htmlhttps://github.com/openshift-quickstart/flask-base的链接。一旦你的openshift flask-base应用程序启动并运行,你可以通过virtualenv添加额外的dropbox模块来增强它。当您从openshift示例成功部署应用程序并运行它时,通过将依赖项放在setup.py中来扩展它与附加的Flask-Dance:

from setuptools import setup

setup(name='FlaskApp',
  version='1.0',
  description='A basic Flask app with static files',
  author='Ryan Jarvinen',
  author_email='ryanj@redhat.com',
  url='http://www.python.org/sigs/distutils-sig/',
 install_requires=['Flask>=0.10.1','Flask-Dance'],
 )

然后在flashkapp.py中使用它,就像它从保管箱指南http://flask-dance.readthedocs.org/en/latest/quickstarts/dropbox.html中的示例一样。

答案 1 :(得分:1)

  

我遇到了传输错误(openshift尝试使用HTTP uri   而不是HTTPS)

尝试访问https://yourApp-namespace.rhcloud.com上的索引(不是http)并确保将其配置为Dropbox应用程序作为重定向URI之一。

如果这不起作用,您可以查看this。但是,教程代码适用于我在OpenShift上提供的the flask quick-start。除了上面链接和发布的代码之外,只有flaskapp.py(即app.config.from_pyfile('flaskapp.cfg'))中必须引用应用配置。