Извините, что-то вроде нуба StackOverflow, но для любого, кто пытается использовать метод JohnK для декодирования, он работает блестяще, всего пара советов по реализации для любого, как я и другие, с проблемой кодировки base64 ...
Ссылка Json также доступна из nuGet
Install-Package Newtonsoft.Json
http://developers.facebook.com/docs/guides/canvas/#auth объясняет элемент ["signature_request"] более подробно, но проще говоря, когда Facebook отправляет сообщения обратно (в моемслучай после запроса регистрации пользователя), вы можете получить данные из поста, но строка в двух частях, разделенных символом «.»- Таким образом, попытка декодировать ["signature_request"] завершится с ошибкой '.'не является символом Base64Первая часть - это подпись, позволяющая вам подтвердить, что сообщение пришло с Facebook (только мы и они знают, что сигнал декодируется), а вторая - полезная нагрузка.
Итак, я получил это для работы сследующий код (в контроллере MVC), источник - кнопка регистрации Facebook ...
<fb:registration fields="name,email" redirect-uri="http://dev.devurlgoeshere.co.uk/Account/Register" width="530">
</fb:registration>
, а затем код контроллера отвечает на запрос регистрации
[HttpPost]
public ActionResult Register(object postData )
{
string requestData = Request.Form["signed_request"];
string[] splitPayload = requestData.Split('.');
string sig = splitPayload[0];
string payload = splitPayload[1];
var decodedObj = DecodePayload(payload);
// get the items from the decodedObject
string userFacebookID = decodedObj["user_id"];
// now do what you want with their FacebookID
return View();
}
надеюсь, это поможеткто-то, и извините, если это должно было быть отредактировано / обратная связь или что-то еще ...