I'm using Plaid Link on the client and Node on the server. The Plaid item is successfully created with Plaid Link and returns a public_token. I then hit an endpoint on the server that uses the Plaid client to call plaidClient.exchangePublicToken(public_token).
Every single time I try to exchange the public_token, I receive a error without any details that simply states Could not exchange public_token!.
I have deducted that the most likely reason for this error is a problem with my plaidClient. All other functionality seems to be working until I try to use the plaidClient to call exchangePublicToken.
I have been trying to get past this issue for days and would really appreciate any insight into what might be preventing me from exchanging my public_tokens.
Below is the server-side code I'm using to perform the token exchange.
var express = require('express');
var router = express.Router();
var bodyParser = require('body-parser');
var plaid = require('plaid');
// fake keys for this example
var PLAID_CLIENT_ID = '123123123123';
var PLAID_SECRET = '123123123123123';
var PLAID_PUBLIC_KEY = '123123123123123';
var PLAID_ENV = 'development';
// Initialize the Plaid plaidClient
var plaidClient = new plaid.Client(
    PLAID_CLIENT_ID,
    PLAID_SECRET,
    PLAID_PUBLIC_KEY,
    plaid.environments[PLAID_ENV]
);
router.use(bodyParser.json());
router.use(bodyParser.urlencoded({ extended: true }));
router.post('/authenticate_item', function(req, res, next) {
  var accountPublicToken = req.body.public_token;
  plaidClient.exchangePublicToken(accountPublicToken, function(error, tokenResponse) {
    if (error != null) {
        var msg = 'Could not exchange public_token!';
        console.log(msg + '\n' + error);
        return res.json({error: msg});
    }
    var accessToken = tokenResponse.access_token;
    console.log('Access Token: ' + accessToken);
  });
});
via Trey Granderson
 
No comments:
Post a Comment