Sorry, bisschen ein Stackoverflow noob, aber für jeden, der versucht Jöhnk Methode zu verwenden, zu entschlüsseln, es funktioniert hervorragend, nur ein paar Tipps für die Umsetzung wie jemand mir und den anderen mit dem base64-Codierung Problem ....
die Json Referenz auch von NuGet
Install-Package Newtonsoft.Json
verfügbar ist
http://developers.facebook.com/docs/guides/canvas/#auth erklärt das ["signed_request"] -Element detaillierter, aber einfach gesagt, wenn Facebook Posts zurück (in meinem Fall nach einer Benutzerregistrierungsanfrage), können Sie die Daten aus dem Post erhalten, aber die Zeichenfolge ist in ZWEI TEILE, getrennt durch eine '.' - Daher wird der Versuch, ["signed_request"] zu dekodieren, als "." ist kein Base64-Zeichen. Der erste Teil ist die Unterschrift, mit der Sie bestätigen können, dass der Beitrag von Facebook kam (nur wir und sie wissen, dass das Sigde zu entschlüsseln ist), und der zweite Teil ist die Nutzlast.
So habe ich dies mit dem folgenden Code zu arbeiten (in einem MVC-Controller), Quelle ist eine Facebook-Registrierungstaste ....
<fb:registration fields="name,email" redirect-uri="http://dev.devurlgoeshere.co.uk/Account/Register" width="530">
</fb:registration>
und dann der Controller-Code reagiert auf die Registrierungsanforderung
[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();
}
hoffe das hilft jemandem, und es tut mir leid, wenn dies hätte bearbeiten/Feedback oder was auch immer ...
Haben Sie gefunden aus? – cdpnet
Haben Sie versucht, das Facebook C# SDK zu verwenden: http://github.com/facebook/csharp-sdk? – Romhein
Das Facebook C# SDK auf Github behandelt nichts mit Authentifizierung, es tut nur API-Anfragen. –