我正在尝试使用本地WiFi网络上的门户(在该站点上永久运行该网站)将客户签入Facebook上的我们的咖啡馆。我正在使用使用Facebook C#SDK的以下代码:
if (Request.QueryString["code"] != null && Request.QueryString["code"] != "")
{
string AccessToken = Request["code"].ToString();
var fb = new FacebookClient(AccessToken);
dynamic parameters = new ExpandoObject();
parameters.message = "This is just a test.";
parameters.place = "<MY PAGE ID>";
dynamic result = fb.Post("me/feed", parameters);
var id = result.id;
}
else
{
var redirectUri = "http://<LOCAL SERVER IP ADDRESS>:<LOCAL SERVER PORT NUMBER>/FBLogin.aspx";
var service = new FacebookClient();
var loginUrl = service.GetLoginUrl(new
{
client_id = appID,
client_secret = appSecret,
redirect_uri = redirectUri,
response_type = "code",
scope = "publish_actions" // Add other permissions as needed
});
Response.Redirect(loginUrl.ToString());
var fb = new FacebookClient();
dynamic result = fb.Post("oauth/access_token", new
{
client_id = appID,
client_secret = appSecret,
redirect_uri = redirectUri
//code = Request.QueryString["code"].ToString()
});
}
我尝试了this question和其他应用程序中的所有功能,但忘记了链接,但没有任何效果。
更新
我可以使用直接使用Facebook调试工具生成的访问令牌进行签入。
完全例外:
(OAuthException-#190)格式错误的访问令牌
AQBQAhmVl6xEYtUmSUzBCdcMq8Djzi-XgEkkFLVwUgT_v592CkhBxOiJ7xX6-PoUpvk2XRqZZ9TahXw8u7_R1qletojvnMR5ENlVTON5tzOg-6b6Mw2foGRyXUEnzNzYhc1p7bb48E9nV5NuB1tg0cFsSM2WSeSTYXnjyyuuuyxEjeqfXy1Kn0PTnIaH1s_2wuKuUCq2AdD-PyHkbj_zUADDnwZCeJk5KSHkqbcKTLgYaIk6roMWJb8xHsExJK86xbRt5jXvS2-bBLwi5dYHn_Fpc7NZjilRvNYWa2gyKSo8ElABnF3Qr051VJInVoNsXiOYTQK24tWvEqvOY_ZeKoId
最佳答案
您应该使用“代码”通过以下方式生成AccessToken:
client_id=<YOUR_APP_ID>&redirect_uri=<YOUR_URL>&
client_secret=<YOUR_APP_SECRET>&code=<YOUR_CODE>
作为响应,您可以获取AccessToken。
您可以使用以下代码获取accessToken:
public String GetAccessToken(string code)
{
//create the constructor with post type and few data
MyWebRequest myRequest = new MyWebRequest("https://graph.facebook.com/oauth/access_token", "GET", "client_id=" + this.ApplicationID + "&client_secret=" + this.ApplicationSecret + "&code=" + code + "&redirect_uri=http:%2F%2Flocalhost:5176%2F");
string accessToken = myRequest.GetResponse().Split('&')[0];
accessToken = accessToken.Split('=')[1];
return accessToken;
}
关于c# - (OAuthException-#190)格式错误的访问 token 异常,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38267246/