我正在燒瓶中創建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