文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

格子 link-initialize.js 永远显示加载符号

2024-02-06 10:58

关注

问题内容

我正在尝试使用 Plaid 开发环境来测试 Plaid API。我正在为 plaid 创建一个命令行 cli,所以我目前不需要服务器,所以目前我使用 Go 生成一个链接令牌并将该令牌呈现为 HTML blob。当我在浏览器中打开该 HTML 文件并单击“链接帐户”按钮时,它会无限期挂起。

下面是生成链接并呈现为 HTML 的 go 代码:

package main

import (
    "context"
    _ "embed"
    "html/template"
    "log"
    "os"
    "time"

    "github.com/plaid/plaid-go/plaid"
    "github.com/vrischmann/envconfig"
)

type config struct {
    PlaidApi struct {
        ClientId string `envconfig:"PLAID_CLIENT_ID"`
        Secret   string `envconfig:"PLAID_SECRET"`
    }
}

//go:embed token.html.tmpl
var tokenPage string

func main() {
    cfg := config{}

    if err := envconfig.Init(&cfg); err != nil {
        log.Fatalf("failed to load config from environment: %s", err)
    }

    ctx := context.TODO()
    plaidCfg := plaid.NewConfiguration()
    plaidCfg.UseEnvironment(plaid.Development)
    cli := plaid.NewAPIClient(plaidCfg)
    phoneNumber := "+1 888 888-8888"
    user := plaid.LinkTokenCreateRequestUser{
        ClientUserId: "1",
        PhoneNumber:  &phoneNumber,
    }
    request := plaid.NewLinkTokenCreateRequest(
        "Personal Finance App",
        "en",
        []plaid.CountryCode{plaid.COUNTRYCODE_US},
        user,
    )
    request.SetProducts([]plaid.Products{plaid.PRODUCTS_TRANSACTIONS})
    request.SetSecret(cfg.PlaidApi.Secret)
    request.SetClientId(cfg.PlaidApi.ClientId)
    linkTokenCreateResp, _, err := cli.PlaidApi.LinkTokenCreate(ctx).LinkTokenCreateRequest(*request).Execute()
    if err != nil {
        if pErr, err := plaid.ToPlaidError(err); err == nil {
            log.Printf("Error from plaid: %s", pErr.ErrorMessage)
        }
        log.Fatalf("failed to get link request: %s", err.Error())
    }
    log.Printf("link token: %s", linkTokenCreateResp.GetLinkToken())

    tmplate, err := template.New("token.html").Parse(tokenPage)
    if err != nil {
        log.Printf("Html tmplate:\n%s", tokenPage)
        log.Fatalf("Failed to create HTML template: %s", err)
    }

    page, err := os.CreateTemp("", "catnip_*.html")
    if err != nil {
        log.Fatalf("Failed to create temp file: %s", err)
    }
    defer os.Remove(page.Name())
    data := struct {
        LinkToken string
    }{LinkToken: linkTokenCreateResp.LinkToken}
    if err := tmplate.Execute(page, data); err != nil {
        log.Printf("template data: %#v", data)
        log.Printf("html template:\n%#v", tokenPage)
        log.Fatalf("Failed to render token page: %s", err)
    }

    log.Printf("token page path:\n%s", page.Name())
    time.Sleep(2 * time.Minute)
}

这是模板(token.html.tmpl):




  • 查看控制台,没有看到任何错误
  • 查看网络流量,奇怪的是,单击按钮似乎没有产生任何流量

正确答案


我尝试手动创建链接令牌(使用格子邮差集合)并硬-将该链接令牌编码到您的 HTML 文件中。当我这样做时,它对我来说工作正常:按下按钮后,我短暂地看到了旋转器,然后弹出了一个链接窗口。

我建议你尝试同样的事情。如果它有效,那么问题要么与您如何在代码中生成链接令牌有关,要么与模板如何发送/摄取链接令牌有关。如果它不起作用,那么问题可能是客户端特定于您的配置的问题(例如,可能是浏览器插件阻止链接打开)?

以上就是格子 link-initialize.js 永远显示加载符号的详细内容,更多请关注编程网其它相关文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 资料下载
  • 历年真题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯