2011-04-06 39 views
1

我必须将Facebook Credits添加到我的应用程序,为了做到这一点,我必须激活“Canvas 2.0 OAuth 2.0”,该应用程序应该向我的应用程序发送signed_request当第一次启动应用程序时,Facebook的“signed_request”是空的

但我注意到,当我第一次启动应用程序后不使用它一段时间(或在不同的浏览器),signed_request是空的。如果我重新加载页面,那么它在那里。但第一次,它总是空的。我使用$ _REQUEST ['signed_request']来获取它。

我的猜测是,这必须以某种方式与cookie或会话过期有关。

任何想法?

+0

我发现了一些可能有所帮助的功能:第一次调用该应用程序时,它确实获得了已签名的请求。但是,require_login()强制页面重新加载,并且当它重新加载时,signed_request为空。这只会发生,如果你没有使用该应用一段时间,或者如果你删除的cookie。顺便说一句,我不得不使用require_login的特殊版本,以防止它重定向到我的托管网址(而不是应用程序的URL)...我从这里得到了技巧http://www.foobots.net/breakouts.html( iframe_require_login) – Cristian 2011-04-06 18:51:49

+0

到目前为止,我想唯一的解决方案是只使用图形api的一切,摆脱REST api – Cristian 2011-04-06 20:32:17

回答

0

答案:signed_request WAS在打开应用程序时发送。但是然后require_login()导致页面重新加载(并不总是,但有时),然后signed_request正在丢失,导致sign_request没有被发送的错觉。

解决方案:我用GRAPH API调用替换了所有REST API调用。

希望这些信息对某人有用!

3

在您的应用设置中,请务必在您的应用路径(或标签网址)上放置尾部斜线 - “/”。将其他设置保留为默认值。

+1

感谢您的答复。不知道现在我使用GRAPH api而不是REST是否与此相关,但可能会对其他人有所帮助。 – Cristian 2011-06-16 01:29:12

相关问题