嗨我在asp.net c#中有一个多页面的facebook粉丝页面应用程序。我如何设置和检索app_data查询字符串?是签名请求的这一部分还是粉丝页面的实际网址?在野生动物园中获得这个问题是否存在交叉的问题?是吗?
我可以使用以下内容获取signed_request:
if (!string.IsNullOrEmpty(signedRequest))
{
dynamic SignedRequestData;
var DecodedSignedRequest = FacebookWebContext.Current.SignedRequest.Data;
SignedRequestData = DecodedSignedRequest
所以基本上在第一页上我想使用上面的内容获取signed_reqeuest,然后将其附加到app_data查询字符串中的url。在所有其他请求,我可以得到这个,并使用这些值来检查用户状态,喜欢,登录等。这种方式,我认为它将停止safari中的跨域cookie问题。有人同意或不同意这个吗?
有人这样做过吗?
欢呼声
答案 0 :(得分:4)
您可以将app_data
设置为:
https://www.facebook.com/{page_id}?sk=app_{app_id}&app_data={"key1":"value1","key2":"value2"}
您可以将多个值传递到app_data
,它将作为(POST数据)在signed_request
中返回到您的实际页面。
您应该做的是从POST首页加载signed_request
,并将其作为...?signed_request={signed_request_string}
添加到您应用的网址中。然后,每个页面都应在URL中传递,以便您可以从任何子页面轻松检查like
和admin
状态。您无需使用app_data
。在任何情况下,在您的应用中的任何后续点击/重定向后,数据都将丢失。