首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将访问令牌和商店名称传递给Shopify API节点新对象

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

Stack Overflow用户
提问于 2019-05-10 14:54:00
回答 1查看 2.2K关注 0票数 1

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

在“shopify-api-node 模块”中,如下所述:

accessToken -公共应用程序所需的字符串-表示永久OAuth 2.0访问令牌的字符串。此选项与apiKey和密码选项相互排斥。如果您正在寻找一个预先制定的解决方案来获取访问令牌,请查看shopify-令牌模块。“

下面是需要shopNameaccessToken的对象

代码语言:javascript
复制
const shopify = new Shopify({
                shopName: 'your-shop-name',
                accessToken: 'your-oauth-token' 
            });

交汇点/快车文档中,您可以在/shopify/callback路由q中添加包含Oauth

代码语言:javascript
复制
// 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

代码语言:javascript
复制
// Declare new global variables //
var accessTokenExport;
var shopExport;

// New Function //
 function exportTokens(accessToken) {
                accessTokenExport = accessToken;
                shopExport = shop;
            }
代码语言:javascript
复制
// Shopify Callback Route //
        app.get('/shopify/callback', (req, res) => {

        // Export variables to New Function
        exportTokens(shop, accessToken); 
        });
代码语言:javascript
复制
// New POST route //
 app.post("/api/createMetafield", function (req, res) {

                const shopify = new Shopify({
                    shopName: shopExport,
                    accessToken: accessTokenExport
                });

                shopify.metafield.create({
                    key: 'warehouse',
                    value: 25,
                    value_type: 'integer',
                    namespace: 'inventory',
                    owner_resource: 'metafield',
                    // owner_id: 632910392 
                }).then(
                    metafield => console.log(metafield),
                    err => console.error(err)
                );

            })
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-11 05:24:44

这不是使用存储访问令牌的正确方式。

因为shopify/callback url只在商店管理员安装应用程序时调用一次,但是访问令牌在大多数情况下都是有用的。

若要为系统使用存储访问令牌,请执行以下操作

当您的应用程序通过商店管理员安装时,您可以将该访问令牌存储在数据库中,并且当它只需要从db获取该访问令牌时,这个访问令牌可以终身访问,直到存储管理没有卸载您的应用程序。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56080104

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档