Siamo spiacenti, po 'di un noob StackOverflow, ma per chi cerca di utilizzare il metodo di Jöhnk per decodificare, funziona brillantemente, solo un paio di suggerimenti di implementazione per una persona come me e gli altri con la questione codifica Base64 ....
il riferimento JSON è disponibili anche da Nuget
Install-Package Newtonsoft.Json
http://developers.facebook.com/docs/guides/canvas/#auth spiega l'elemento ["signed_request"] in maggiore dettaglio, ma in parole semplici, quando Facebook postback (nel mio caso dopo una richiesta di registrazione dell'utente), è possibile ottenere i dati dal post, ma la stringa è in DUE PARTI, separati da un '.' - Come tale, provare a decodificare ["signed_request"] fallirà come '.' non è un carattere Base64. La prima parte è la firma per consentire di convalidare che il post proviene da Facebook (solo noi e loro conoscono il sig per decodificare) e il secondo è il payload.
Così, ho ottenuto questo per lavorare con il seguente codice (in un controller MVC), fonte di un pulsante di registrazione Facebook ....
<fb:registration fields="name,email" redirect-uri="http://dev.devurlgoeshere.co.uk/Account/Register" width="530">
</fb:registration>
e quindi il codice di controllo risponde alla richiesta di registrazione
[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();
}
spero che questo aiuti qualcuno, e mi dispiace se questo avrebbe dovuto essere modifica/feedback o qualsiasi altra cosa ...
fonte
2011-07-29 13:49:49
Hai trovato su? – cdpnet
Hai provato a utilizzare Facebook C# SDK: http://github.com/facebook/csharp-sdk? – Romhein
L'SDK C# di Facebook su github non gestisce nulla con l'autenticazione, fa solo richieste API. –