生成公共Shopify应用程序时出错:ngrok.io拒绝连接
我想要一个公共的而不是嵌入式的Shopify应用程序。这个应用程序是一个销售渠道,它将产品从Shopify商店导入我的电子商务网站。安装应用程序的商店将在我的电子商务网站上列出他们的产品生成公共Shopify应用程序时出错:ngrok.io拒绝连接,shopify,shopify-app,Shopify,Shopify App,我想要一个公共的而不是嵌入式的Shopify应用程序。这个应用程序是一个销售渠道,它将产品从Shopify商店导入我的电子商务网站。安装应用程序的商店将在我的电子商务网站上列出他们的产品 我已经建立了安装应用程序并将产品导入我的电子商务网站的初始步骤 现在,当用户单击应用程序图标时,我希望他被重定向到以下页面,该页面显示导入产品的列表: https://my-commerce.com/products?storeurl=perisn-handcrafts.myshopify.com 如果以上
我已经建立了安装应用程序并将产品导入我的电子商务网站的初始步骤 现在,当用户单击应用程序图标时,我希望他被重定向到以下页面,该页面显示导入产品的列表:
https://my-commerce.com/products?storeurl=perisn-handcrafts.myshopify.com
如果以上链接返回如下产品列表,则产品列表将显示在Shopify Admin cosole中:
<table data-toggle="table">
<thead>
<tr>
<th>UniqueThirdPartyProductCode</th>
<th>Title</th>
<th>Price</th>
<th>ImageUrl</th>
<th>CombinedCategoryViewModel</th>
</tr>
</thead>
<tbody>
<tr>
<td>39-4477334519894</td>
<td>Blue</td>
<td>550.00</td>
<td></td>
<td>"todo"</td>
</tr>
/* more data... */
</tbody>
</table>
唯一第三方产品代码
标题
价格
图像URL
组合类别视图模型
39-4477334519894
蓝色
550
“待办事项”
/*更多数据*/
但是,如果我将表格放在页面布局中,在结果中添加
、
和
标记,则结果不会显示。。。例如,如果我的应用程序返回以下HTML:
<html>
<head></head>
<body>
<table data-toggle="table">
/*
* content of the table
*/
</table>
</body>
/*
*表的内容
*/
我会得到这个结果:
我不确定为什么会出现此错误:
ngrok.io拒绝连接
另外,我的应用程序似乎嵌入了Shopify管理控制台,是否可以构建一个未嵌入的公共应用程序?更新答案
我的Shopify应用程序是一个销售渠道,Shopify要求所有销售渠道都嵌入管理控制台()
为了使应用程序嵌入Shopify管理控制台,我们需要从响应中删除X-Frame-Options
标题。我的应用程序是在ASP.NET MVC中开发的,我已将以下代码添加到Global.asax以删除所述标题(请注意,删除X-Frame-Options
会使我们的网站受到攻击,因此仅出于此特定目的删除标题):
Global.asax
protected void Application_PreSendRequestHeaders()
{
var routeValues = HttpContext.Current.Request.RequestContext.RouteData.Values;
if (routeValues.ContainsKey("controller"))
{
// make sure you only remove the header for a very specific use case
if (string.Equals((string)routeValues["controller"], "EmbeddedShopifyController", StringComparison.InvariantCultureIgnoreCase))
{
Response.Headers.Remove("X-Frame-Options");
}
}
}
原始答案
此错误的原因是我已将我的应用程序配置为嵌入式。要检查您的应用是否嵌入,请转到您的Shopify合作伙伴页面:
应用->扩展->嵌入式应用
单击管理嵌入式应用程序按钮,在这里您可以看到应用程序是否配置为嵌入式。您可以启用/禁用此设置
在我的例子中,我禁用了嵌入式应用程序配置,我的应用程序现在可以正常工作。您显示的错误与ngrok连接或您的http响应(可能是错误代码)有关。我建议您首先检查机器上的ngrok输出,因为它可能会引导您走上最佳方向(检查您是否看到请求)