使用shopifyapi访问Shopify Storefront时出现TypeError错误求助
报错根因
这个错误是因为shopify.ShopifyResource.get_site()返回了None空值,代码里直接把空值和字符串/graphql.json做拼接运算,触发了类型不匹配的错误。
本质是你在调用Storefront GraphQL接口前,没有完成shopifyapi库的全局身份认证配置,Shopify资源的站点参数没有被正确初始化。
常见触发场景:
- 未调用
shopify.ShopifyResource.set_site()或者会话激活方法,站点地址未赋值 - 初始化会话时传入的店铺域名、API版本、Token参数错误,导致会话激活失败,站点参数未写入
- 之前激活的会话过期或被手动清空后,没有重新初始化就直接调用GraphQL接口
解决步骤
- 第一步:在调用任何Shopify接口前,先完成会话激活配置,示例代码如下:
import shopify # 替换为你自己的店铺对应参数 SHOP_DOMAIN = "your-shop.myshopify.com" API_VERSION = "2024-04" # 用Storefront API的话需要填你应用生成的Storefront专用AccessToken ACCESS_TOKEN = "your-access-token" # 初始化并激活会话 session = shopify.Session(SHOP_DOMAIN, API_VERSION, ACCESS_TOKEN) shopify.ShopifyResource.activate_session(session)
- 第二步:可以在拼接endpoint前增加空值校验,提前拦截配置错误的场景:
shop_site = shopify.ShopifyResource.get_site() if not shop_site: raise ValueError("Shopify站点未初始化,请先完成会话配置") self.endpoint = f"{shop_site}/graphql.json"
- 额外检查:确认你使用的Token对应应用已经开通了Storefront API的访问权限,权限不足也会导致会话配置失效。
内容的提问来源于stack exchange,提问作者Cherry_deve
相关产品推荐
相关产品推荐

