Я пытаюсь добавить возможность поделиться продуктом, который вы только что купили, на мой сайт, используя Facebook C # SDK .Для этого вам необходимо аутентифицировать пользователя с помощью Facebook и получить необходимые разрешения.
У меня есть код, который проверяет, аутентифицированы ли вы, если нет, перенаправляет вас на страницу oAuth Facebook для аутентификации.
Однако, когда страница возвращается из Facebook, она входит в цикл перенаправления:
var auth = new FacebookWebAuthorizer();
bool authorized = auth.FacebookWebRequest.IsAuthorized(new string[] { "publish_stream" });
if (authorized)
{
var client = new FacebookClient(auth.FacebookWebRequest.AccessToken);
Dictionary<string, object> args = new Dictionary<string, object>();
args["message"] = "This is a test.";
args["name"] = "";
args["link"] = "http://www.example.com/";
args["description"] = "Test link.";
client.Post("/me/feed", args);
}
else
{
var facebookClient = new FacebookOAuthClient();
var parameters = new Dictionary<string, object> {
{ "redirect_uri", "http://www.example.com/" },
{ "client_id", "xxxx" },
{ "scope", "publish_stream" }
};
Response.Redirect(facebookClient.GetLoginUrl(parameters).ToString(), true);
}
Мой web.config выглядит так:
<configuration>
<configSections>
<section name="facebookSettings" type="Facebook.FacebookConfigurationSection" />
</configSections>
<system.web>
<customErrors mode="Off" />
<compilation debug="true" targetFramework="4.0" />
</system.web>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true" />
<handlers>
<add name="facebookredirect.axd" verb="*" path="facebookredirect.axd" type="Facebook.Web.FacebookAppRedirectHttpHandler, Facebook.Web" />
</handlers>
</system.webServer>
<facebookSettings appId="xxxx" appSecret="xxxx" />
</configuration>
Это выглядиткак будто мой сайт не распознает, что я уже аутентифицирован, поэтому он перенаправляет на страницу входа в Facebook.Затем Facebook знает, что я аутентифицирован, поэтому перенаправляет меня обратно, вызывая зацикливание.