我对web开发和Python相当陌生,试图用python烧瓶做一个facebook应用程序。 在本教程中find了一些我正在使用的代码: http : //ryaneshea.com/facebook-authentication-for-flask-apps
Facebook OAuth身份validation正在运行,用户第一次使用应用程序时,他们被要求向应用程序提供其权限。 之后,他们应该被redirect到应用程序索引站点。 如果从Facebook内部使用该应用,则会给出消息“405方法不允许”。 如果应用程序是从Facebook以外(从我的Apache Web服务器)使用的redirect工作。
当从Facebook外部使用应用程序时,只有GET请求被创build,但是当从Facebook内部使用时,这是发出405错误的POST请求:
"POST /?fb_source=search&ref=br_tf HTTP/1.1""
有关如何接受来自Facebook的POST请求的任何build议,以便用户可以redirect?
IntelliJ IDEA 10.5通过看起来相同的设置(scala)在不同的机器上生成二进制不同的JAR,
在Windows上启动一个不带命令窗口的Scala Swing应用程序
在Windows 8中从.sql文件创buildsqlite3数据库
如何从clojure代码构build可执行的jar? 在一个程序中具有java的主要function
以下是代码的相关部分:
from flask import render_template,url_for,request,session,redirect from flask_oauth import OAuth oauth = OAuth() facebook = oauth.remote_app('facebook',base_url='https://graph.facebook.com/',request_token_url=None,access_token_url='/oauth/access_token',authorize_url='https://www.facebook.com/dialog/oauth',consumer_key=FACEBOOK_APP_ID,consumer_secret=FACEBOOK_APP_SECRET,request_token_params={'scope': 'email,'} ) app = Flask(__name__) @facebook.tokengetter def get_facebook_token(): return session.get('facebook_token') def pop_login_session(): session.pop('logged_in',None) session.pop('facebook_token',None) @app.route("/") def index(): return render_template('index.html') @app.route("/facebook_login") def facebook_login(): return facebook.authorize(callback=url_for('facebook_authorized',next=request.args.get('next'),_external=True)) @app.route("/facebook_authorized") @facebook.authorized_handler def facebook_authorized(resp): next_url = request.args.get('next') or url_for('index') if resp is None or 'access_token' not in resp: return redirect(next_url) session['logged_in'] = True session['facebook_token'] = (resp['access_token'],'') return redirect(next_url)
使用Flask来更改文件
在linux中运行flask / python代码? 基本的烧瓶代码
我通过为适当的路由指定GET和POST方法来修复它。 不得不重新启动Apache以使其工作。
这是语法:
@app.route("/facebook_authorized",methods=['GET','POST'])
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。