Я пытаюсь добавить возможность публикации на стене пользователя с сайта, который я разрабатываю.
У меня есть некоторый код, использующий Microsoft C # Facebook SDK.Он проверяет, аутентифицирован ли текущий пользователь, если нет, перенаправляет на страницу OAuth.Если пользователь прошел проверку подлинности, он пытается опубликовать на своей стене:
CanvasAuthorizer auth = new CanvasAuthorizer();
bool authorized = auth.FacebookWebRequest.IsAuthorized(new string[] { "publish_stream" });
if (authorized)
{
FacebookClient client = new FacebookClient();
client.AccessToken = auth.FacebookWebRequest.AccessToken;
Dictionary<string, object> args = new Dictionary<string, object>();
args["message"] = "This is a test.";
args["name"] = "";
args["link"] = "http://subdomain.domain.lom/";
args["description"] = "Development site.";
client.Post("/me/feed", args);
}
else
{
long appId = {APP_ID};
string returnUrl = "http://subdomain.domain.com/share";
Response.Redirect("https://www.facebook.com/dialog/oauth?client_id=" + appId.ToString() + "&redirect_uri=" + returnUrl + "&scope=publish_stream");
}
При первой загрузке он обнаруживает, что вы не прошли проверку подлинности, и перенаправляет вас на страницу авторизации Facebook.
Однако, когда он пытается вернуться на мой сайт, он входит в цикл перенаправления.
Похоже, что происходит, когда он возвращается из Facebook, он выполняет проверку подлинности, но он говорит, чтопользователи не аутентифицированы.Затем он снова перенаправляет на логин Facebook, который знает, что пользователь прошел аутентификацию, поэтому возвращается на мой сайт, вызывая цикл.
В данный момент я занимаюсь разработкой на моей локальной машине, http://subdomain.domain.lom/,который недоступен из внешнего мира.
Мои настройки приложения Facebook:
У меня сложилось впечатление, что не имеет значения, работаете ли вы локально?