プッシュ リクエスト情報を取得するために次のすべての方法を試していますが、すべて失敗しています。
@app.route('/handlepush', methods=['POST'])
def handlepush():
"""
Handles push notifications from Foursquare
"""
print 'handling push'
print request
try:
print 'request.form:' + json.loads(request.form['checkin'],
parse_float=str)
except:
print 'request.form error'
try:
print 'request.data: ' + json.loads(request.data['checkin'], parse_float=str)
except:
print 'no request.data'
try:
print 'request.form' + request.form
except:
print 'no request.form'
try:
print 'request.args' + request.args
except:
print 'no request.args'
if request.headers['Content-Type'] == 'text/plain':
print'text/plain'
return "Text Message: " + request.data
elif request.headers['Content-Type'] == 'application/json':
print 'application/json'
return "JSON Message: " + json.dumps(request.json)
try:
print 'request.form["id"]:' + request.form['checkin']['id']
except:
print 'request.form error'
try:
print request.data['checkin']['id']
except:
print 'request.data error'
try:
print 'request.json: ' + request.json
except:
print 'no request.json'
return 'hi'
これが私の応答です:
2013-01-28T00:54:31+00:00 app[web.1]: <Request 'http://my.herokuapp.com/handlepush' [POST]>
2013-01-28T00:54:31+00:00 app[web.1]: handling push
2013-01-28T00:54:31+00:00 app[web.1]: no request.args
2013-01-28T00:54:31+00:00 app[web.1]: 10.71.26.114 - - [28/Jan/2013 00:54:31] "POST /handlepush HTTP/1.1" 200 -
2013-01-28T00:54:31+00:00 app[web.1]: request.form error
2013-01-28T00:54:31+00:00 app[web.1]: no request.data
2013-01-28T00:54:31+00:00 app[web.1]: no request.form
2013-01-28T00:54:31+00:00 app[web.1]: request.data error
2013-01-28T00:54:31+00:00 app[web.1]: no request.json
2013-01-28T00:54:31+00:00 app[web.1]: request.form error
だから私はこれにアプローチする最善の方法を考えていました。私の経験では、ヘッダーが「application/json」として指定されている場合、request.json は json POST に対して機能しますが、このプッシュ データを取得する方法がわかりません。