Facebook C# SDK-user bekommen accessToken
Ich Probleme mit immer den accessToken von den Ergebnissen meiner login zu facebook.
In der Page_load, meine url nicht korrekt analysiert.
GenerateLoginUrl Methode arbeitet ohne Fehler und ich kann sehen, das accessToken in den QueryString.
Ich habe versucht, es zu bekommen aus der aber, dass es nicht funktioniert entweder.
protected void Page_Load(object sender, EventArgs e)
{
var fb = new FacebookClient();
FacebookOAuthResult result;
if (fb.TryParseOAuthCallbackUrl(Request.Url, out result))
{
if (result.IsSuccess)
{
//result clicked authorized
var accessToken = result.AccessToken;
Label1.Text = accessToken.ToString();
}
else
{
//user clicked cancelled and didn't authorize the app
var error = result.ErrorDescription;
Label1.Text = error;
}
}
else
{
//This is were it always goes
Label1.Text = "not valid facebook url";
}
}
private Uri GenerateLoginUrl(string appId, string extendedPermissions)
{
try
{
dynamic parameters = new ExpandoObject();
parameters.client_id = appId;
parameters.redirect_uri = "local iis ip";
//The requested response: an access token (token), an authorization code (code), or both (code token).
parameters.response_type = "token";
//list of additional display modes can be found at http://developers.facebook.com/docs/reference/dialogs/#display
parameters.display = "popup";
//add the 'scope' parameter only if we have extendedPermissions.
if (!string.IsNullOrWhiteSpace(extendedPermissions))
parameters.scope = extendedPermissions;
//generate the login url
var fb = new FacebookClient();
var url = fb.GetLoginUrl(parameters);
return url;
}
catch (FacebookOAuthException fbex)
{
Label1.Text = fbex.Message;
return null;
}
catch (Exception ex)
{
Label1.Text = ex.Message;
return null;
}
}
protected void Button1_Click(object sender, EventArgs e)
{
string AppId = ConfigurationManager.AppSettings["apiKey"];
string ExtendedPermissions = ConfigurationManager.AppSettings["ExtendedPermissions"];
var url = GenerateLoginUrl(AppId, ExtendedPermissions);
Response.Redirect(url.AbsoluteUri, false);
}
Vielen Dank für Ihre Hilfe.
Update:
In der Anfrage.Url-die url ist immer:
http://localhost:23560/Appname/default.aspx
aber ich kann se die tatsächliche url in der browser und es steht:
http://localhost:23560/Appname/#access_token=0000000000&expires_in=3821
Also Weise können nicht asp.net Lesen Sie die url korrekt?
Mögliche Duplikate von Wie man ein access token mit C# SDK
InformationsquelleAutor Madde Persson | 2013-02-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Fand ich die answare und es ist:
Musst du den code nicht token, der code ist gonna show im querystring accesstoken wird beraubt.
exchange
Und dann exchange-code, um Tokens
var accessToken = token.access_token;
InformationsquelleAutor Madde Persson