我正在尝试为我们的网站创建一个Facebook注册流程,该流程将在我们的CRM中为用户创建一个帐户 - 为此,我需要在注册表单中使用一些自定义字段。
我在网站上正确显示了注册表单,但是,当我处理signed_request时,JSON只返回已解码的标准项而不是我的自定义字段:
{
"algorithm": "HMAC-SHA256",
"code": "2.AQDp0sgWRw3TWrII.3600.1330650000.1100001862544007|LwjvMjADtPxaIzxizYuIivNdi7w",
"issued_at": 1330644064,
"user_id": "<my user id>"
}
这是一个.NET实现,但我没有使用Facebook C#SDK,因为他们的网站上似乎没有任何文档可用,我只是不够聪明才能搞清楚。我尝试使用Facebook C#SDK和Facebook.Client()解析方法的新6.x测试版,但是一旦解析了东西,就没有任何运气确定如何处理它。
所以 - 这个被盗的代码就是我以前发布的结果:
//client_payload = the signed_request from Facebook
string[] sB64String = client_payload.Split('.');
string payload = client_payload.Replace((sB64String[0] + "."), string.Empty);
var encoding = new UTF8Encoding();
var decodedJson = payload.Replace("=", string.Empty).Replace('-', '+').Replace('_', '/');
var base64JsonArray = Convert.FromBase64String(decodedJson.PadRight(decodedJson.Length + (4 - decodedJson.Length % 4) % 4, '='));
var json = encoding.GetString(base64JsonArray);
var jObject = JObject.Parse(json);
response.write(Convert.ToString(jObject)); // rw for debugging
也许我错过了什么?
答案 0 :(得分:0)
我已经通过修改我的方式自行解决了这个问题。
我最终使用了标签和客户端cookie,如下所示:
https://developers.facebook.com/docs/plugins/registration/advanced/
我的所有自定义字段最终都在cookie中,然后我可以解析并发送到我的.NET Web服务。这是一种圆满的方式,但现在已经完成了工作。