Я новичок в Facebook API и после некоторой работы я столкнулся с проблемой.
Во-первых, я использую SDK facebook для связи с API Facebook.
В настройках моего приложения я выбрал ответ на диалог OAuth в виде строки запроса, а не фрагмента URI.
![enter image description here](https://i.stack.imgur.com/rXXaH.png)
На моем сервере я получил следующий код:
void Page_Load()
{
string url = Request.Url.AbsoluteUri;
Facebook.FacebookOAuthResult result = null;
if (!Facebook.FacebookOAuthResult.TryParse(url, out result))
{
string redirectUrl = PivotServer.Helpers.GetFacebookOAuthUrl();
Response.Redirect(redirectUrl);
}
}
И это мой вспомогательный метод:
public static string GetFacebookOAuthUrl()
{
FacebookOAuthClient oauth = new FacebookOAuthClient
{
AppId = "149637255147166",
AppSecret = "xxx",
RedirectUri = new Uri("http://mydomain.com/")
};
var param = new Dictionary<string, object>
{
{ "response_type", "token" },
{ "display", "popup" }
};
Uri url = oauth.GetLoginUrl(param);
return url.AbsoluteUri;
}
Я запустил свою страницу на веб-сервере (IIS). Когда я открываю страницу в первый раз, меня просят войти в facebook, что нормально, но затем я столкнулся с бесконечным циклом, потому что параметр Auth Token (из facebook) вместо этого представляет собой фрагмент URI, если строка запроса (которая Я хотел (см. Рисунок выше)).
URI ответа выглядит как
http://mydomain.com/#access_token=AAACIGCNwLp4BAMccSoliF5EMGJm0NPldv5GpmBPIm9z7rRuSkiia7BM0uhEn1V88c8uOlWOfGc3C8sFC9tq90Ma0OwIm0tWLNU5BBAZDZD&expires_in=0&base_domain=mydomain.com
вместо
http://mydomain.com/?code=AAACIGCNwLp4BAMccSoliF5EMGJm0NPldv5GpmBPIm9z7rRuSkiia7BM0uhEn1V88c8uOlWOfGc3C8sFC9tq90Ma0OwIm0tWLNU5BBAZDZD&expires_in=0&base_domain=mydomain.com
Это ошибка в API-интерфейсе OAuth или что я здесь делаю очень неправильно?