使用 Flask 连接到 ParseServer 时出现身份验证错误

Authentication Error when using Flask to connect to ParseServer

我要实现的目标非常简单。

我想使用 Flask 创建一个通过 API 调用(特别是 ParseServer)连接到远程服务器的 Web 应用程序。 我正在使用第三方库来实现此目的,当我 运行 在独立脚本中编写我的代码时,一切都完美无缺。但是当我将我的代码添加到 Flask 中时,我突然无法通过服务器进行身份验证

Or to be more precise I get an 'unauthorized' error when executing an API call.

我好像在Flask中,APi库使用的注册方式不记得了

我尝试了很多方法,将注册和初始化代码放在 Flask 的不同位置,但没有任何效果。

我在 Library 的 Github 中问了一个类似的问题,但没有任何帮助。

所以我想我有 两个问题 可以帮助我解决这个问题

1) 我应该把注册方法和从这个库中导入文件放在哪里? &

2) 我能做些什么来具体识别问题,例如。准确知道哪里出了问题?

这是一些代码

Flask 代码在这里

@app.route('/parseinsert')
def run_parse_db_insert():
    """The method for testing implementation and design of the Parse Db
    """
    pc = ParseCommunication()
    print(pc.get_all_names_rating_table())
    return 'done'

ParseCommunication 是我处理 Parse 的 Class。如果我从该脚本 运行 ParseCommunication,在 main 部分使用与上面相同的代码,一切正常。

我 运行 Flask 应用程序与来自 Google App Engine 的 dev_appserver.py。

我的文件夹结构

/parseTest
  /aplication
   views.py
  app.yaml
  run.py

我的run.py代码

import os
import sys
sys.path.insert(1, os.path.join(os.path.abspath('.'), 'lib'))
sys.path.insert(1, os.path.join(os.path.abspath('.'), 'application'))
import aplication

让我知道我还能提供什么帮助。

提前致谢

编辑:

请求的堆栈跟踪。 它主要与图书馆有关(据我所知?)

ERROR    2016-09-28 06:45:50,271 app.py:1587] Exception on /parseinsert [GET]
Traceback (most recent call last):
  File "/home/theshade/Devel/ParseBabynames/parseTest/lib/flask/app.py", line 1988, in wsgi_app
    response = self.full_dispatch_request()
  File "/home/theshade/Devel/ParseBabynames/parseTest/lib/flask/app.py", line 1641, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/home/theshade/Devel/ParseBabynames/parseTest/lib/flask/app.py", line 1544, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/home/theshade/Devel/ParseBabynames/parseTest/lib/flask/app.py", line 1639, in full_dispatch_request
    rv = self.dispatch_request()
  File "/home/theshade/Devel/ParseBabynames/parseTest/lib/flask/app.py", line 1625, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/home/theshade/Devel/ParseBabynames/parseTest/aplication/views.py", line 34, in run_parse_db_insert
    name = pc.get_user('testuser1')
  File "/home/theshade/Devel/ParseBabynames/parseTest/aplication/parseCommunication.py", line 260, in get_user
    return User.Query.get(username=uname)
  File "/home/theshade/Devel/ParseBabynames/parseTest/lib/parse_rest/query.py", line 58, in get
    return self.filter(**kw).get()
  File "/home/theshade/Devel/ParseBabynames/parseTest/lib/parse_rest/query.py", line 150, in get
    results = self._fetch()
  File "/home/theshade/Devel/ParseBabynames/parseTest/lib/parse_rest/query.py", line 117, in _fetch
    return self._manager._fetch(**options)
  File "/home/theshade/Devel/ParseBabynames/parseTest/lib/parse_rest/query.py", line 41, in _fetch
    return [klass(**it) for it in klass.GET(uri, **kw).get('results')]
  File "/home/theshade/Devel/ParseBabynames/parseTest/lib/parse_rest/connection.py", line 108, in GET
    return cls.execute(uri, 'GET', **kw)
  File "/home/theshade/Devel/ParseBabynames/parseTest/lib/parse_rest/connection.py", line 102, in execute
    raise exc(e.read())
ResourceRequestLoginRequired: {"error":"unauthorized"}

解析需要键和环境变量。检查这一行:

API_ROOT = os.environ.get('PARSE_API_ROOT') or 'https://api.parse.com/1'

您的错误在第 102 行:

https://github.com/milesrichardson/ParsePy/blob/master/parse_rest/connection.py

解析前需要先注册:

from parse_rest.connection import register

APPLICATION_ID = '...'
REST_API_KEY = '...'
MASTER_KEY = '...'

register(APPLICATION_ID, REST_API_KEY, master_key=MASTER_KEY)