0

嗨,我在 asp.net c# 中有一个多页 facebook 粉丝页面应用程序。我如何设置和检索该 app_data 查询字符串?这部分是签名请求还是粉丝页面的实际 url?在 safari 和 ie 中获得这个会有跨域问题吗?

我可以使用以下方法获取signed_request:

 if (!string.IsNullOrEmpty(signedRequest))
{
    dynamic SignedRequestData;
    var DecodedSignedRequest = FacebookWebContext.Current.SignedRequest.Data;
    SignedRequestData = DecodedSignedRequest

所以基本上在第一页上,我想使用上面的方法获取 signed_reqeuest,然后将其附加到 app_data 查询字符串中的 url。在所有其他请求上,我可以得到这个并使用这些值来检查用户状态、喜欢、登录等。这样我认为它将停止 safari 中的跨域 cookie 问题。有人同意或不同意这一点吗?

有人做过吗?

干杯

4

1 回答 1

4

您可以设置app_data为:

https://www.facebook.com/{page_id}?sk=app_{app_id}&app_data={"key1":"value1","key2":"value2"}

您可以将多个值传递给app_data它,它将signed_request作为(POST 数据)返回到您的实际页面。

您真正应该做的是signed_request从 POST 获取第一页加载,并将其添加到应用程序的 URL 中...?signed_request={signed_request_string}。然后每个页面都应该在 URL 中传递它,以便您可以轻松地从任何子页面检查like和状态。admin你不需要为此使用app_data。在任何情况下,在您的应用中进行任何后续点击/重定向后,数据都会丢失。

于 2012-05-29T15:32:01.887 回答