如何使用 Ruby 对 Shopify 进行基本的 GraphQL 查询
How to do a basic GraphQL query to Shopify with Ruby
我正在尝试使用 Sinatra 对 Shopify 商店执行基本的 GraphQL 查询。有人可以帮我弄清楚我做错了什么吗?我看着他们 API 这样做:
require 'shopify_api'
require 'sinatra'
class App < Sinatra::Base
get '/' do
shop = 'xxxx.myshopify.com'
token = 'shpat_xxxxxxxxxxxxxxxxxxxxxx'
session = ShopifyAPI::Session.new(domain: shop, token: token, api_version: "2021-04")
ShopifyAPI::Base.activate_session(session)
ShopifyAPI::GraphQL.initialize_clients
client = ShopifyAPI::GraphQL.client
SHOP_NAME_QUERY = client.parse <<-'GRAPHQL'
{
shop {
name
}
}
GRAPHQL
result = client.query(SHOP_NAME_QUERY)
result.data.shop.name
end
end
这会出现此错误,但我不想使用 Rake 或 Rails。是否可以使用 Ruby 对 Shopify 进行 GraphQL 查询?
ShopifyAPI::GraphQL::InvalidClient at /
Client for API version 2021-04 does not exist because no schema file exists at `shopify_graphql_schemas/2021-04.json`. To dump the schema file, use the `rake shopify_api:graphql:dump` task
如错误所述,您需要先转储架构(请参阅此 link:https://github.com/Shopify/shopify_api/blob/master/docs/graphql.md#dump-the-schema)。
然后在与 ruby 脚本相同的根目录下创建一个 shopify_graphql_schemas
目录,并将生成的 JSON 放在那里。
如评论中所述,这需要 Rake
任务,因此您需要使用 Rails
。
如果您的项目不使用 Rails,您需要快速解决问题。
您创建一个临时准系统 Rails 项目,然后使用该项目生成转储(您可以在完成此操作后删除该项目)。
这有点老套,但这是我能看到的唯一可行的方法。
新 link 模式转储
https://github.com/Shopify/shopify_api/blob/v9/docs/graphql.md#dump-the-schema
你需要使用这样的东西
rake shopify_api:graphql:dump SHOP_DOMAIN="SHOP_NAME.myshopify.com" ACCESS_TOKEN="SHOP_TOKEN" API_VERSION=2022-04
旧的已经不行了
我正在尝试使用 Sinatra 对 Shopify 商店执行基本的 GraphQL 查询。有人可以帮我弄清楚我做错了什么吗?我看着他们 API 这样做:
require 'shopify_api'
require 'sinatra'
class App < Sinatra::Base
get '/' do
shop = 'xxxx.myshopify.com'
token = 'shpat_xxxxxxxxxxxxxxxxxxxxxx'
session = ShopifyAPI::Session.new(domain: shop, token: token, api_version: "2021-04")
ShopifyAPI::Base.activate_session(session)
ShopifyAPI::GraphQL.initialize_clients
client = ShopifyAPI::GraphQL.client
SHOP_NAME_QUERY = client.parse <<-'GRAPHQL'
{
shop {
name
}
}
GRAPHQL
result = client.query(SHOP_NAME_QUERY)
result.data.shop.name
end
end
这会出现此错误,但我不想使用 Rake 或 Rails。是否可以使用 Ruby 对 Shopify 进行 GraphQL 查询?
ShopifyAPI::GraphQL::InvalidClient at /
Client for API version 2021-04 does not exist because no schema file exists at `shopify_graphql_schemas/2021-04.json`. To dump the schema file, use the `rake shopify_api:graphql:dump` task
如错误所述,您需要先转储架构(请参阅此 link:https://github.com/Shopify/shopify_api/blob/master/docs/graphql.md#dump-the-schema)。
然后在与 ruby 脚本相同的根目录下创建一个 shopify_graphql_schemas
目录,并将生成的 JSON 放在那里。
如评论中所述,这需要 Rake
任务,因此您需要使用 Rails
。
如果您的项目不使用 Rails,您需要快速解决问题。
您创建一个临时准系统 Rails 项目,然后使用该项目生成转储(您可以在完成此操作后删除该项目)。 这有点老套,但这是我能看到的唯一可行的方法。
新 link 模式转储 https://github.com/Shopify/shopify_api/blob/v9/docs/graphql.md#dump-the-schema
你需要使用这样的东西
rake shopify_api:graphql:dump SHOP_DOMAIN="SHOP_NAME.myshopify.com" ACCESS_TOKEN="SHOP_TOKEN" API_VERSION=2022-04
旧的已经不行了