Zoho Node.js SDK 身份验证问题

编程入门 行业动态 更新时间:2024-10-04 01:14:47

Zoho Node.js SDK <a href=https://www.elefans.com/category/jswz/34/1771189.html style=身份验证问题"/>

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
回答如下:

更多推荐

Zoho Node.js SDK 身份验证问题

本文发布于:2024-05-31 05:34:55,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1771329.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:身份验证   Node   Zoho   SDK   js

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!