我正在烧瓶中创建Facebook应用程序。由于这是一个微框架,我从教程开始很简单,并且拥有两个文件:app.py和conf.py(以及其他类似/ templates)。烧瓶 - 更改项目结构后无法获取Facebook应用程序ID
在基本结构(由Heroku的主要生成)它是这样的:
/game
game.py
conf.py
app.py
FB_APP_ID = os.environ.get('FACEBOOK_APP_ID')
FB_APP_SECRET = os.environ.get('FACEBOOK_SECRET')
requests = requests.session()
app_url = 'https://graph.facebook.com/{0}'.format(FB_APP_ID)
FB_APP_NAME = json.loads(requests.get(app_url).content).get('name')
FB_APP_LOGO = json.loads(requests.get(app_url).content).get('logo_url')
app = Flask(__name__)
app.config.from_object(__name__)
app.config.from_object('conf.Config')
@app.route('/channel.html', methods=['GET', 'POST'])
def get_channel():
return render_template('channel.html')
@app.route('/')
def index():
return 'index'+str(FB_APP_ID)
if __name__ == '__main__':
port = int(os.environ.get("PORT", 5000))
print requests.headers
if app.config.get('FB_APP_ID') and app.config.get('FB_APP_SECRET'):
app.run(host='0.0.0.0', port=port)
else:
print 'Cannot start application without Facebook App Id and Secret set'
conf.py
import os
class Config(object):
DEBUG = True
TESTING = False
LOG_LEVEL = os.environ.get('LOG_LEVEL', 'DEBUG')
FBAPI_APP_ID = os.environ.get('FACEBOOK_APP_ID')
FBAPI_APP_SECRET = os.environ.get('FACEBOOK_SECRET')
FBAPI_SCOPE = ['user_likes', 'user_photos', 'user_photo_video_tags']
我想拍它完美的MVC,所以我用this link和问题开始。
/game
conf.py
runserver.py
/game
/templates
/static
__init__.py
views.py
models.py
runserver.py
import os
from game import app
if __name__ == '__main__':
port = int(os.environ.get("PORT", 5000))
# print requests.headers
if app.config.get('FB_APP_ID') and app.config.get('FB_APP_SECRET'):
app.run(host='0.0.0.0', port=port)
else:
print 'Cannot start application without Facebook App Id and Secret set'
__init__.py
from flask import Flask
import os, requests, json
SCRIPTS='static/scripts/'
FB_APP_ID = os.environ.get('FACEBOOK_APP_ID')
FB_APP_SECRET = os.environ.get('FACEBOOK_SECRET')
requests = requests.session()
app_url = 'https://graph.facebook.com/{0}'.format(FB_APP_ID)
FB_APP_NAME = json.loads(requests.get(app_url).content).get('name')
FB_APP_LOGO = json.loads(requests.get(app_url).content).get('logo_url')
app = Flask(__name__)
app.config.from_object(__name__)
app.config.from_object('conf.Config')
import game.views
import game.models
conf.py保持不变和索引视图在视图。
问题:在第一个结构(简单)os.environ得到所有FB_APP_ID和FB_APP_SECRET就好了,我可以处理任何我想要的数据。
现在(在MVC中)它只是不提取变量,我在那里有“无”。 我试图把__init__ == __main__放在任何地方,但没有任何真正的工作。
conf.py将所有数据放在那里(如DEBUG = TRUE或LOG LEVEL)。这只是我没有得到的fb数据。
在两种情况下'os.environ'的外观如何? – Blender 2013-03-02 19:36:13
你的意思是它应该返回什么? – Archarachne 2013-03-02 20:27:41
'打印出来。 – Blender 2013-03-02 20:29:10