这似乎是一个明显的问题,但我在 facebook 开发者网站上查看了有关画布应用程序和facebook csharp sdk并没有找到我的问题的答案。
我正在使用 facebook-c#-sdk v5.4x 或类似的东西,.net 3.5 使用网络表单。
桌面版画布应用程序将有多个入口点。
https://apps.facebook.com/my_canvas_app/Default.aspx
https://apps.facebook.com/my_canvas_app/Register.aspx?EventID=12345
https://apps.facebook.com/my_canvas_app/SomeOtherPage.aspx
我的第一个问题是,从来自 facebook 的第一个请求开始,我收到了signed_request
(由facebook-c#-sdk负责),我有 oauth 令牌,它的有效期约为 2 小时。在尝试发出 oauth 请求(查询图表等)之前,重新更新此 oauth 令牌并确保其有效的正确方法是什么?
现在我所有的链接(比如来自 Default.aspx)看起来像<a href="https://apps.facebook.com/my_canvas_app/SomeOtherPage.aspx" target="_top">Go to Some Other Page</a>
,最终会往返于 facebook,得到一个新signed_request
的 ,因此是一个更新的 oauth 令牌。
其次,当通过 asp.net 将常规表单回发到我自己的站点时,我确保signed_request
表单上带有一个简单的<input type="hidden" name="signed_request" value="<%=Request.Form["signed_request"]%>" />
,这似乎适用于应用程序。如果我省略了这个,那么回发没有 oauth 信息,导致事情失败。这是在画布应用程序中执行回发的正确方法吗?从查看 csharp-sdk 的源代码中可以看出,会话中没有存储任何内容来保留请求之间的 oauth 令牌,因此多个页面/回发需要隐藏输入和 target="_top" 链接,我我在这个推论中正确吗?
https://apps.facebook.com/my_canvas_app/MobilePage.aspx
第三,在开发移动画布应用程序(没有 iframe)时,如果我的第一个假设是正确的,我页面上的所有链接是否仍然必须转到。
如果有人能对这些主题有所了解,我将不胜感激。
谢谢!