swift Plaid Link IOS示例应用程序错误消息:“link_token必须是格式正确的非空字符串”,

xwbd5t1u  于 2023-03-11  发布在  Swift
关注(0)|答案(2)|浏览(185)

我克隆了https://github.com/plaid/plaid-link-ios plaid的IOS sample swift应用程序,并按照Plaid节点的说明获取了一个Generated令牌。https://plaid.com/docs/quickstart/
我将令牌放入func presentPlaidLinkUsingLinkToken()的swift应用程序linkToken变量中,但当我运行应用程序并单击格子链接时,出现以下错误:
2020年11月30日18:03:07.629202-0600链接演示-Swift [1378:41715] [] nw_protocol_get_quic_image_block_invoke打开库失败2020年11月30日18:03:08.771021-0600链接演示-Swift [1378:41497] WF:===正在为流程链接演示-斯威夫特启动WebFilter日志记录2020-11-30 18:03:08.771106-0600链接演示-斯威夫特[1378:41497] WF:用户设置(_U):(无)2020年11月30日18:03:08.771167-0600链接演示-Swift [1378:41497]网页版:_WebFilter处于活动状态返回:NO 2020-11-30 18:03:08.997682-0600 LinkDemo-Swift[1378:41497]开始/结束〈LinkKit.InProcessWebviewFallbackController的外观转换的调用不平衡:0x 13 fe 30 a70〉。退出时出现退出错误(错误代码:链接工具包。退出错误代码。无效请求(INVALID_FIELD),错误消息:“link_token的格式必须正确,非空字符串”,显示消息:可选(“”),错误JSON:nil)退出元数据(状态:可选(需要凭据),机构:可选(LinkKit.机构(ID:“",名称:“”)),链接会话ID:可选(“”),请求ID:可选(“FzibHWAqJqtTG 3e”),元数据JSON:无)2020-11-30 18:03:40.762780-0600链接演示-斯威夫特[1378:41497]无法向服务网站发送信号。苹果。网络工具包。网络内容:113:无法找到指定的服务2020-11-30 18:03:40.768987-0600 LinkDemo-Swift[1378:41497]无法向服务com.apple.WebKit发送信号。网络:113:找不到指定的服务
我的令牌格式是正确的,我敢肯定,我不知道我做错了什么。
请帮帮我
谢谢

hm2xizp9

hm2xizp91#

按照以下步骤,我能够在iOS模拟器(iPhone 12 mini iOS 14.2)中构建和运行LinkDemo-Swift应用程序,并使用沙盒测试凭据链接帐户。
为了确保环境中没有不匹配的情况,以下命令显示了我使用的设置:

% sw_vers
ProductName:    Mac OS X
ProductVersion: 10.15.7
BuildVersion:   19H15
% xcode-select -p
/Applications/Xcode.app/Contents/Developer
% xocdebuild -version
Xcode 12.2
Build version 12B45b
% swift -version
Apple Swift version 5.3.1 (swiftlang-1200.0.41 clang-1200.0.32.8)
Target: x86_64-apple-darwin19.6.0
% git -C $PATH_TO/quickstart log --format=oneline -1; true # replace $PATH_TO with the path to the directory containing the Plaid quickstart git clone
 9ccc96567eaec7a77209676a1693387cc93a32d0 (HEAD -> master, upstream/master, upstream/HEAD) Merge pull r equest #167 from plaid/sb-quickstart-improvements
% git -C $PATH_TO/plaid-link-ios log --format=oneline -1; true # replace $PLAID_TO with the path to the directory containing the plaid-link-ios git clone
 0a8b0c4a85d6042fafdb5deaa346d41364cafc1f (HEAD -> master, tag: ios/2.0.8, origin/master, origin/HEAD)  Merge pull request #38 from plaid/add-changelog-2.0.8

此外,我还设置了以下与Plaid快速入门相关的环境变量(修改了值):

% env | grep -Ei '^plaid_(client_id|secret|public_key)' | tr 'a-z0-9' '•'
PLAID_CLIENT_ID=••••••••••••••••••••••••
PLAID_SECRET=••••••••••••••••••••••••••••••
PLAID_PUBLIC_KEY=••••••••••••••••••••••••••••••

为了生成链接令牌,我在Docker中运行了节点快速启动

% cd $PATH_TO/quickstart/node
% make QUICKSTART=node up

并且还使用NVM在本地运行节点快速启动(不是同时绑定到localhost:8000):

% cd $PATH_TO/quickstart/node
% nvm use; node --version; npm --version
Now using node v14.15.0 (npm v6.14.8)
v14.15.0
6.14.8
% npm install

> nodemon@2.0.5 postinstall $HOME/src/quickstart/node/node_modules/nodemon
> node bin/postinstall || exit 0

added 179 packages from 133 contributors and audited 179 packages in 2.903s

10 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities
% node index.js
plaid-quickstart server listening on port 8000

我使用curl从节点quickstart生成一个新的链接令牌,如下所示:

% curl -sX POST localhost:8000/api/create_link_token \
  | awk -F: 'BEGIN{RS=","} /link_token/{print $2}' \
  | pbcopy

使用粘贴板中生成的链接标记,我将源代码中的<#GENERATED_LINK_TOKEN#>占位符替换为实际标记:

% cd $PATH_TO/plaid-link-ios
% sed -i "" -e "s/\"<#GENERATED_LINK_TOKEN#>\"/$(pbpaste)/" LinkDemo-Swift/LinkDemo-Swift/ViewController+LinkToken.swift
% git diff -U1 | sed -e '/^\+.*linkToken/s/[0-9]/•/g'; true # link-token redacted
diff --git a/LinkDemo-Swift/LinkDemo-Swift/ViewController+LinkToken.swift b/LinkDemo-Swift/LinkDemo-Swift/ViewController+LinkToken.swift
index 9cce64f..361916a 100644
--- a/LinkDemo-Swift/LinkDemo-Swift/ViewController+LinkToken.swift
+++ b/LinkDemo-Swift/LinkDemo-Swift/ViewController+LinkToken.swift
@@ -20,3 +20,3 @@ extension ViewController {

-        let linkToken = "<#GENERATED_LINK_TOKEN#>"
+        let linkToken = "link-sandbox-f•••ebb•-•d•a-•aa•-adae-••a•••••••••"

我确保示例应用程序已正确配置为使用链接令牌流:

% grep -i 'let sampleFlow' LinkDemo-Swift/LinkDemo-Swift/ViewController.swift
        let sampleFlow : PlaidLinkSampleFlow = .linkToken

不对项目做进一步更改,LinkDemo Xcode工作区打开

% open -a Xcode $PATH_TO/plaid-link-ios/LinkDemo.xcworkspace

我能够在iOS模拟器iPhone 12 mini(iOS 14.2(18 B79))中“构建并运行(⌘ R)”LinkDemo-Swift方案,并使用沙箱测试凭据user_goodpass_good成功链接帐户。
如果您看到的问题仍然存在,我建议联系官方Plaid支持(http://dashboard.plaid.com/support/new),提供详细和准确的步骤,说明如何创建链接令牌,以及对示例应用程序进行了哪些更改。

1szpjjfi

1szpjjfi2#

Fwiw,这个还能用!
我还没有足够的凭据添加评论,但想分享。
他们的文档实际上帮你完成了90%的工作。然而,正如@afh指出的,还有一个步骤,那就是启动API服务器。我在Docker中停止了Quickstart示例,但我认为你可以在index.js中分配一个diff端口(例如8001),启动它,你会没事的。

相关问题