2012-09-07 139 views
0

说我在我的代码中有这个电话: 如何检查shopify会话是否已过期?

 
products = shopify.Product.find() 
这工作,如果我刚刚登录,但一段时间后,它开始失败,说错误 AttributeError: 'NoneType' object has no attribute 'find'。我认为这是因为会话过期,我的代码没有检查。

有没有办法检查shopify会话是否过期?我将商店URL和身份验证令牌存储在我的webapp2会话中:

 
self.session['shopify'] = { 
    'shop_url': shopify_session.url, 
    'access_token': shopify_session.token 
    } 
是否有任何其他属性需要存储在我的Web会话中,以便检查Shopify会话是否已过期?

+0

“X-Shopify-Access-Token”头中使用的访问令牌不应过期。你使用[shopify_python_api](https://github.com/shopify/shopify_python_api)库吗?什么是返回无,或者如果在图书馆中发生错误,哪里会发生?因为据推测shopify.Product不是无。 –

+0

@Dylan,谢谢你的回应。这是我的代码中的一个错误。我没有正确设置并激活shopify会话。所以shopify.Product返回None。如果不是NoneType错误会提供更多信息性消息,但我认为它来自pyactive资源,而不是您的适配器。谢谢。 – akonsu

+0

@akonsu我面临着类似的问题,你的问题是什么,你是如何解决它的? – Aameer

回答

0

Shopifyaccess_token永不过期,该过期或者被重置的一个是会议。

如果您使用的是共享主机,那么重置会话的可能性要高得多,因为它们会非常频繁地重置应用程序池。

如果是这种情况,那么你应该考虑使用持久会话而不是内存会话。如果您使用的是.NET,那么您可以阅读ASP.NET State ManagementConfigure SQL Server for ASP.NET SQL Server Session State