Niestety, trochę noob StackOverflow, ale dla każdego, kto próbuje użyć metody JohnK do dekodowania, to działa świetnie, tylko kilka wskazówek wdrożeniowych dla kogoś takiego jak ja i inni z kwestii kodowania base64 ....
odniesienie JSON jest również dostępny z Nuget
Install-Package Newtonsoft.Json
http://developers.facebook.com/docs/guides/canvas/#auth wyjaśnia bardziej szczegółowo element ["signed_request"], ale mówiąc krótko, gdy Facebook odsyła z powrotem (w moim przypadku po żądaniu rejestracji użytkownika), możesz pobrać dane z tego wpisu, ale ciąg jest w DWÓCH CZĘŚCIach, oddzielonych przez "." - Jako takie, próba dekodowania ["signed_request"] zakończy się niepowodzeniem jako "." nie jest znakiem Base64. Pierwsza część to podpis umożliwiający sprawdzenie, czy post pochodzi z Facebooka (tylko my i oni znamy sig do odkodowania), a drugi to ładunek.
Tak, mam to do pracy z następującego kodu (w kontroler MVC), źródło jest przycisk Rejestracja Facebook ....
<fb:registration fields="name,email" redirect-uri="http://dev.devurlgoeshere.co.uk/Account/Register" width="530">
</fb:registration>
a następnie kod Kontroler odpowiada na żądania rejestracji
[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();
}
Mam nadzieję, że to pomoże komuś i przepraszam, czy to powinna być edycja/opinia lub cokolwiek ...
Znalazłeś na zewnątrz? – cdpnet
Czy próbowałeś użyć Facebook C# SDK: http://github.com/facebook/csharp-sdk? – Romhein
C# SDK na Facebooku na github nie obsługuje niczego z uwierzytelnianiem, wykonuje tylko żądania API. –