最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

Zoho Node.js SDK 身份验证问题

网站源码admin38浏览0评论

Zoho Node.js SDK 身份验证问题

Zoho Node.js SDK 身份验证问题

我正在按照 Zoho Node.js SDK npmjs 页面中的说明编写此代码。我在 Windows 10 上运行它。当它试图找到用于实例化 FileStore 的文件时,它失败了。我正在使用 Zoho Self Client 方法进行 oAuth2 身份验证。在此代码中,我只是为他们提供一个临时访问令牌,以便我可以创建一个刷新令牌,然后我将在无服务器函数中使用它从 Zoho CRM 读取数据。我的理解是 SDK 会将身份验证凭据写入 Filestore,并且会包含刷新令牌。 这在读取目录中确实存在的文件存储时失败。我对文件存储感到困惑,因为我认为 SDK 会将令牌写入此文件,而不是尝试读取它。 如果您使用过 Zoho CRM 并且可以看到问题,请分享。

import * as dotenv from 'dotenv'
dotenv.config();
console.log(process.env.ADMIN_EMAIL_ADDRESS)

import { URL } from 'url'; // in Browser, the URL in native accessible on window

// Will contain trailing slash
const absolute_path = new URL('.', import.meta.url).pathname;
console.log("dirname", absolute_path)

import * as ZOHOCRMSDK from '@zohocrm/nodejs-sdk-2.1';

class Initializer {
    static async initialize() {

        /*
         * Create an UserSignature instance that takes user Email as parameter
         */
        let user = new ZOHOCRMSDK.UserSignature(process.env.ADMIN_EMAIL_ADDRESS);

        /*
         * Configure the environment
         * which is of the pattern Domain.Environment
         * Available Domains: USDataCenter, EUDataCenter, INDataCenter, CNDataCenter, AUDataCenter
         * Available Environments: PRODUCTION(), DEVELOPER(), SANDBOX()
         */
        let environment = ZOHOCRMSDK.USDataCenter.PRODUCTION()

        /*
         * Create a Token instance
         * clientId -> OAuth client id.
         * clientSecret -> OAuth client secret.
         * grantToken -> GRANT token.
         * redirectURL -> OAuth redirect URL. Default value is null
         */
        let token = new ZOHOCRMSDK.OAuthBuilder()
            .clientId(process.env.SELF_CLIENT_CLIENT_ID)
            .clientSecret(process.env.SELF_CLIENT_CLIENT_ID)
            .grantToken(process.env.SELF_CLIENT_TEMPORARY_GRANT_TOKEN)
            .redirectURL(process.env.REDIRECT_URL)
            .build();

        /*
         * TokenStore can be any of the following
         * DB Persistence - Create an instance of DBStore
         * File Persistence - Create an instance of FileStore  ** using this to save refresh token
         * Custom Persistence - Create an instance of CustomStore
         */
        const tokenstore_location = `${absolute_path}nodejs_sdk_tokens.txt`
        console.log("tokenstore_location", tokenstore_location)
        let tokenstore = new ZOHOCRMSDK.FileStore(tokenstore_location)


        /*
            * Set the following in InitializeBuilder
            * user -> UserSignature instance required
            * environment -> Environment instance required
            * token -> Token instance required
            * store -> TokenStore instance
            * SDKConfig -> SDKConfig instance
            * resourcePath -> resourcePath
            * logger -> Logger instance. Default value is null
            * requestProxy -> RequestProxy instance. Default value is null
            */
        // The SDK can be initialized by any of the following methods
        (await new ZOHOCRMSDK.InitializeBuilder())
        .user(user)
        .environment(environment)
        .token(token)
        .store(tokenstore)
        .initialize()
        .catch((err) => {
            console.log(err);
        });
    }
}

Initializer.initialize(); Zoho
回答如下:

与本文相关的文章

发布评论

评论列表(0)

  1. 暂无评论