Я пытался найти это на сайте Facebook в их документации, но пока не повезло. Я уверен, что другие, должно быть, столкнулись с этим раньше.
Я использую Amazon S3 для хранения изображений. Я не знал заранее, что если бы я назвал свое ведро своим доменным именем с поддоменом, я мог бы связать этот путь, поэтому, пока я не переместлю все картинки, мне нужно будет связать их с доменом mybucket.s3.amazonaws.com. Когда я добавляю оттуда картинку с постом к стене, картинка не появляется. Если я поменяю картинку на сам сервер, картинка действительно появится. Кажется, что доменное имя картинки должно соответствовать моему приложению? Я посмотрел на Багзиллу и не увидел этого упоминания. Форум Facebook говорит, чтобы оставлять вопросы здесь.
Я использую C # Facebook SDK от CodePlex.
Мой код выглядит так (без обработки ошибок и проверки подлинности):
var client = new FacebookClient(FACEBOOK_APP_ID, FACEBOOK_SECRET);
client.AccessToken = facebook.AccessToken;
var parameters = new Dictionary<string, object>();
parameters.Add("name", name);
parameters.Add("caption", title);
parameters.Add("message", message);
parameters.Add("link", link);
parameters.Add("source", link);
parameters.Add("picture", imageUrl);
client.Post("me/feed", parameters);
Я проверил, что imageUrl действительно имеет правильное изображение, доменное имя просто не совпадает. Картинка на Amazon S3 имеет открытый доступ для чтения. Я могу просмотреть его из своего браузера, поэтому не думаю, что это проблема с разрешениями. Я пробовал несколько разных картинок с той же проблемой. Пока это работает, только когда картинка была на самом сервере.
Итак, мой вопрос: это проблема со мной, или Facebook блокирует изображения, которые не соответствуют доменному имени, указанному в приложении?