无法在开发模式下启动Plaid quickstart应用程序

2024-06-13 05:12:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我刚开始用格子呢。我已经在本地设置了quickstart应用程序,它在沙盒模式下运行良好。链接面板加载良好,我可以使用沙箱creds登录机构

我的.env文件如下所示:

PLAID_CLIENT_ID=xxxxxxxx
PLAID_SECRET=xxxxxxxx
PLAID_ENV=sandbox
PLAID_PRODUCTS=transactions
PLAID_COUNTRY_CODES=US,CA
PLAID_REDIRECT_URI=http://localhost:3000

我现在想检查Plaid是否能与一些特定的真实/实时机构合作,所以我正在尝试更新我的quickstart应用程序,使其在开发模式下工作。为此,我只需将PLAID_SECRET更新为我的开发密钥,将PLAID_ENV更新为“development”

当我现在启动应用程序时,开始页面不再显示“启动链接”按钮,而是显示: enter image description here

日志表明问题发生在POST/api/create\u link\u令牌调用上。如果我从该路由功能中删除错误处理,日志会显示问题:

Traceback (most recent call last):
  File "/Users/william/Personal/quickstart/python/venv/lib/python3.8/site-packages/flask/app.py", line 2447, in wsgi_app
    response = self.full_dispatch_request()
  File "/Users/william/Personal/quickstart/python/venv/lib/python3.8/site-packages/flask/app.py", line 1952, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/Users/william/Personal/quickstart/python/venv/lib/python3.8/site-packages/flask/app.py", line 1821, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/Users/william/Personal/quickstart/python/venv/lib/python3.8/site-packages/flask/_compat.py", line 39, in reraise
    raise value
  File "/Users/william/Personal/quickstart/python/venv/lib/python3.8/site-packages/flask/app.py", line 1950, in full_dispatch_request
    rv = self.dispatch_request()
  File "/Users/william/Personal/quickstart/python/venv/lib/python3.8/site-packages/flask/app.py", line 1936, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "server.py", line 196, in create_link_token
    response = client.link_token_create(request)
  File "/Users/william/Personal/quickstart/python/venv/lib/python3.8/site-packages/plaid/api_client.py", line 769, in __call__
    return self.callable(self, *args, **kwargs)
  File "/Users/william/Personal/quickstart/python/venv/lib/python3.8/site-packages/plaid/api/plaid_api.py", line 5566, in __link_token_create
    return self.call_with_http_info(**kwargs)
  File "/Users/william/Personal/quickstart/python/venv/lib/python3.8/site-packages/plaid/api_client.py", line 831, in call_with_http_info
    return self.api_client.call_api(
  File "/Users/william/Personal/quickstart/python/venv/lib/python3.8/site-packages/plaid/api_client.py", line 406, in call_api
    return self.__call_api(resource_path, method,
  File "/Users/william/Personal/quickstart/python/venv/lib/python3.8/site-packages/plaid/api_client.py", line 200, in __call_api
    raise e
  File "/Users/william/Personal/quickstart/python/venv/lib/python3.8/site-packages/plaid/api_client.py", line 193, in __call_api
    response_data = self.request(
  File "/Users/william/Personal/quickstart/python/venv/lib/python3.8/site-packages/plaid/api_client.py", line 452, in request
    return self.rest_client.POST(url,
  File "/Users/william/Personal/quickstart/python/venv/lib/python3.8/site-packages/plaid/rest.py", line 264, in POST
    return self.request("POST", url,
  File "/Users/william/Personal/quickstart/python/venv/lib/python3.8/site-packages/plaid/rest.py", line 223, in request
    raise ApiException(http_resp=r)
plaid.exceptions.ApiException: (400)
Reason: Bad Request
HTTP response headers: HTTPHeaderDict({'Server': 'nginx', 'Date': 'Sun, 16 May 2021 18:22:05 GMT', 'Content-Type': 'application/json; charset=utf-8', 'Content-Length': '301', 'Connection': 'keep-alive'})
HTTP response body: {
  "display_message": null,
  "documentation_url": "https://plaid.com/docs/?ref=error#invalid-input-errors",
  "error_code": "INVALID_API_KEYS",
  "error_message": "invalid client_id or secret provided",
  "error_type": "INVALID_INPUT",
  "request_id": "EbCTgZkFdeYQQ8r",
  "suggested_action": null
}

这表明我使用了错误的客户id或密码,但我不明白。客户端ID应该很好(它在沙盒模式下工作),这个秘密绝对是我开发模式的秘密(我甚至尝试过生成一个新的,但没有区别)。我错过什么了吗

最后,如果我使用Postman发布到https://development.plaid.com/link/token/create来创建一个链接令牌,使用相同的客户端ID和“开发”秘密,它似乎工作得很好(即,我得到了200个响应和全新的链接令牌)

非常感谢您的帮助


Tags: inpyselfapivenvlibpackagesline
2条回答

哎呀,这样就可以了:

https://github.com/plaid/quickstart/blob/master/python/server.py#L84

看起来python快速启动是硬编码的,忽略了.env文件中设置的环境变量。我们会把它修好的。同时,改变这条线应该可以解决你的问题

这是因为Python是硬编码到沙箱的。正在修复此问题,同时,在server.py的第84行,您可以将其更改为:

“host=plaid.Environment.Development”

相关问题 更多 >