猿问

如何将访问令牌和商店名称传递给Shopify API节点新对象

我正在构建一个公共shopify应用程序,我想添加一个允许创建元字段的POST路由。

shopify-api-node 模块中说明以下内容:

accessToken-公共应用程序必需-表示永久性OAuth 2.0访问令牌的字符串。此选项与apiKey和password选项互斥。如果您正在寻找一种预制的解决方案来获取访问令牌,请查看shopify-token模块。”

这是需要shopName和的对象accessToken

const shopify = new Shopify({

                shopName: 'your-shop-name',

                accessToken: 'your-oauth-token' 

            });

在Shopify Node / Express文档中,您添加了/shopify/callback路由q,其中包括Oauth:


// Shopify Callback Route //

        app.get('/shopify/callback', (req, res) => {

            const { shop, hmac, code, state } = req.query;

            /// ... skipping over code ... ///

            request.post(accessTokenRequestUrl, { json: accessTokenPayload })

                .then((accessTokenResponse) => {

                    const accessToken = accessTokenResponse.access_token;

                    // DONE: Use access token to make API call to 'shop' endpoint

                    const shopRequestUrl = 'https://' + shop + '/admin/api/2019-04/shop.json';

                    const shopRequestHeaders = {

                        'X-Shopify-Access-Token': accessToken,

                    };


                });

             /// ... skipping over code ... ///

        });

shopify-token module可以使用/shopify/callback以下方式(请参见下文)从路由中访问/访问该信息,而不是使用?还是有更好的方法来做到这一点/您可以提供示例吗?


Server.js


// Declare new global variables //

var accessTokenExport;

var shopExport;


// New Function //

 function exportTokens(accessToken) {

                accessTokenExport = accessToken;

                shopExport = shop;

            }

// Shopify Callback Route //

        app.get('/shopify/callback', (req, res) => {


        // Export variables to New Function

        exportTokens(shop, accessToken); 

        });

// New POST route //

 app.post("/api/createMetafield", function (req, res) {


                const shopify = new Shopify({

                    shopName: shopExport,

                    accessToken: accessTokenExport

                });


精慕HU
浏览 267回答 1
1回答

德玛西亚99

这不是使用商店访问令牌的正确方法因为shopify/callback只有在商店管理员安装您的应用程序时url才会调用一次,但是在大多数情况下访问令牌很有用要为您的系统使用商店访问令牌,您可以执行以下操作shopify/callback 当商店管理员安装您的应用程序时,您可以将该访问令牌存储在数据库中,并且仅需要从数据库中获取该访问令牌,并且该访问令牌在生命周期内可访问,直到商店管理员未卸载您的应用程序时,API调用
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答