1

I'm using Zoho CRM Nodejs SDK zcrmsdk to get all users.


 const {
        OAuthToken,
        TokenType
    } = require('zcrmsdk/models/authenticator/oauth_token');
    let token = new OAuthToken(
        '1000.XXXX',
        '4eXXXX',
        'GRANT',
        TokenType.GRANT,
        'https://www.google.com/'
    );

    // User's TOKEN Store
    const FileStore = require('zcrmsdk/models/authenticator/store/file_store')
        .FileStore;
    let tokenstore = new FileStore(
        '/mnt/c/Users/Shadab/Repositories/ZOHO_CRM/nodejs_sdk_tokens.txt'
    );

    const SDKConfigBuilder = require('zcrmsdk/routes/sdk_config_builder')
        .MasterModel;
    let sdkConfig = new SDKConfigBuilder()
        .setPickListValidation(false)
        .setAutoRefreshFields(true)
        .build();

    let resourcePath = '/mnt/c/Users/Shadab/Repositories/ZOHO_CRM/';

    // PROXY
    const RequestProxy = require('zcrmsdk/routes/request_proxy').RequestProxy;
    let requestProxy = new RequestProxy(
        'proxyHost',
        80,
        'proxyUser',
        'password'
    );

    console.log('user', crmclient.API);
    let zoho = await crmclient.Initializer.initialize(
        user,
        environment,
        token,
        tokenstore,
        sdkConfig,
        resourcePath,
        logger
    );
    console.log(await new UsersOperations().getUsers());


but i'm getting invalid_code errror. It is happening when sdk internally calls generateAccessToken function.

url:  https://accounts.zoho.com/oauth/v2/token,
formdata: {
  method: 'POST',
  headers: {},
  body: FormData {
    _overheadLength: 543,
    _valueLength: 188,
    _valuesToMeasure: [],
    writable: false,
    readable: true,
    dataSize: 0,
    maxDataSize: 2097152,
    pauseStreams: true,
    _released: false,
    _streams: [
      '----------------------------520556686822378093129396\r\n' +
        'Content-Disposition: form-data; name="grant_type"\r\n' +
        '\r\n',
      'authorization_code',
      [Function: bound ],
      '----------------------------520556686822378093129396\r\n' +
        'Content-Disposition: form-data; name="client_id"\r\n' +
        '\r\n',
      '1000XXX',
      [Function: bound ],
      '----------------------------520556686822378093129396\r\n' +
        'Content-Disposition: form-data; name="client_secret"\r\n' +
        '\r\n',
      '4e1XXX',
      [Function: bound ],
      '----------------------------520556686822378093129396\r\n' +
        'Content-Disposition: form-data; name="redirect_uri"\r\n' +
        '\r\n',
      'https://www.google.com/',
      [Function: bound ],
      '----------------------------520556686822378093129396\r\n' +
        'Content-Disposition: form-data; name="code"\r\n' +
        '\r\n',
      'GRANT',
      [Function: bound ]
    ],
    _currentStream: null,
    _insideLoop: false,
    _pendingNext: false,
    _boundary: '--------------------------520556686822378093129396'
  },
  encoding: 'utf8',
  allowGetBody: true,
  throwHttpErrors: false
}

The Client id and secret key is from the Server Based Application. I'm running this from my local machine.

Shadab Faiz
  • 2,380
  • 1
  • 18
  • 28

0 Answers0