Javascript 无法将Google Apps脚本连接到Plaid API

Javascript 无法将Google Apps脚本连接到Plaid API,javascript,api,google-apps-script,google-sheets,plaid,Javascript,Api,Google Apps Script,Google Sheets,Plaid,团队好,我正在尝试使用Plaid自动填充一个Google表单,在我的Plaid帐户中设置财务报表。我最近看到一些公司收费(例如:)来做这件事。几年前,我还看到开发人员完成了这项工作(请参阅)。这就是我想要做的,但是Plaid API从那时起已经更新,以删除公钥,而不是链接令牌: 工作流程应如下所示: 请求使用客户端ID和密码创建链接令牌 使用链接令牌打开链接。在onSuccess回调中,将临时公共_令牌发送到应用程序的服务器 请求将公共\u令牌交换为新项目的永久访问\u令牌和项目\u id 存储

团队好,我正在尝试使用Plaid自动填充一个Google表单,在我的Plaid帐户中设置财务报表。我最近看到一些公司收费(例如:)来做这件事。几年前,我还看到开发人员完成了这项工作(请参阅)。这就是我想要做的,但是Plaid API从那时起已经更新,以删除公钥,而不是链接令牌:

工作流程应如下所示:

  • 请求使用客户端ID和密码创建链接令牌
  • 使用链接令牌打开链接。在onSuccess回调中,将临时公共_令牌发送到应用程序的服务器
  • 请求将公共\u令牌交换为新项目的永久访问\u令牌和项目\u id
  • 存储access_令牌并使用它为用户的项目发出产品请求
  • 我可以通过以下调用创建链接令牌(链接令牌位于responseJSON.link\u令牌):

    但在此之后,我不确定如何使用链接令牌初始化链接(更不用说获取要交换为访问令牌的公共令牌)。当我尝试将链接令牌作为公共令牌传递以进行身份验证时,它(当然)失败:

    响应2JSON:

    {
    display_message: null
    documentation_url: "https://plaid.com/docs/?ref=error#invalid-input-errors"
    error_code: "INVALID_PUBLIC_TOKEN"
    error_message: 'provided token is the wrong type. expected "public", got "link"'
    error_type: " INVALID_INPUT"
    ...
    }
    
    有什么想法吗?不知道如何作为谷歌应用程序脚本做到这一点。谢谢你的帮助

    我看过的其他地方:

    • 条带集成
    • 在反应中做这件事
    • 代币单据
    • GitHub上的SDK

    在web上使用链接令牌初始化链接:

    const handler = Plaid.create({
      token: 'GENERATED_LINK_TOKEN',
      onSuccess: (public_token, metadata) => {},
      onLoad: () => {},
      onExit: (err, metadata) => {},
      onEvent: (eventName, metadata) => {},
      receivedRedirectUri: null,
    });
    
    触发对/item/public\u令牌/交换的调用:

      onSuccess: (public_token, metadata) => {
        fetch('//yourserver.com/get_access_token', {
          method: 'POST',
          body: {
            public_token: public_token,
            accounts: metadata.accounts,
            institution: metadata.institution,
            link_session_id: metadata.link_session_id,
          },
        });
      }
    });
    

    来源:

    当使用请求的每个值都可以被认为是有效值时,我认为您的两个谷歌应用程序请求脚本都是正确的。例如,从错误消息中,确认从第一个请求中检索到的
    “public_token”:responseJSON.link_token
    是否可用于使用
    https://development.plaid.com/item/public_token/exchange
    ,又是吗?很抱歉,我无法提出明确的解决方案。你好@Tanaike,我很高兴你看到了我的问题!我是你的超级粉丝,我关注你的博客,从你的教导中学到了很多东西。谢谢你所做的一切!回到问题,哈哈,看起来link_令牌不是的有效输入。Plaid的工作流说使用这样的脚本来“初始化”带有Link_标记的链接:(CTRL+F“Quickstart Link”以查看其节点和javascript示例)。我很困惑如何在谷歌应用程序脚本中做到这一点。谢谢你的回复。我不得不为我糟糕的英语水平道歉。不幸的是,从你的回复中,我不确定我是否能正确理解你当前的问题。我为此道歉。例如,当您想要将
    Quickstart Link
    的Javascript转换为Google Apps脚本时,示例脚本似乎使用了Javascript库。所以我认为有必要对图书馆进行分析。这个怎么样?
    const handler = Plaid.create({
      token: 'GENERATED_LINK_TOKEN',
      onSuccess: (public_token, metadata) => {},
      onLoad: () => {},
      onExit: (err, metadata) => {},
      onEvent: (eventName, metadata) => {},
      receivedRedirectUri: null,
    });
    
      onSuccess: (public_token, metadata) => {
        fetch('//yourserver.com/get_access_token', {
          method: 'POST',
          body: {
            public_token: public_token,
            accounts: metadata.accounts,
            institution: metadata.institution,
            link_session_id: metadata.link_session_id,
          },
        });
      }
    });