FbGraph: у событий в Фейсбуке есть карта, но возвращаемое место не имеет геолокации
Я не уверен, что это ошибка fbgraph. На самом деле я уверен, что это не так, но я хотел бы понять, почему некоторые события в Facebook отображают карту, но когда я получаю их с помощью FbGraph, возвращаемое место не имеет информации о месте.
Я делаю:
FbGraph::Event.fetch("1314214...", access_token: "ABABZ...")
И место, которое является частью ответа, является
@venue=#<FbGraph::Venue:0x007f8657de20a8 @latitude=nil, @longitude=nil, @street=nil, @city=nil, @state=nil, @zip=nil, @country=nil>
Это почему?
1 ответ
Facebook покажет карту, даже если создатель мероприятия никогда не предоставил данные о географическом местоположении. Итак, если вы не получаете данные о местоположении, это потому, что создатель события никогда не предоставлял данные.
Добавлено: соответствующая информация из обсуждения ниже...
Facebook может нарисовать карту данного адреса, преобразовав этот адрес в широту / долготу, однако у вас, как у программиста, нет доступа к этим координатам. Facebook будет возвращать координаты только в том случае, если пользователь специально ввел их (обычно выбирая точку на карте).
Добавлено: так что, возможно, выше сказанное не так...
Перечитав ваш вопрос, я понимаю, что мой ответ может не относиться к вашей ситуации. Похоже, что на самом деле Facebook возвращает идентификатор местоположения и оставляет за вами право запрашивать информацию об этом месте. Имейте в виду, что Facebook использовал для хранения событий в своей базе данных с отдельными полями данных для адреса, города, штата и т. Д. Однако Facebook, похоже, постепенно переходит на хранение только идентификаторов мест. (Но эти поля все еще доступны программистам).
Раньше вы могли программно создавать событие с улицей, городом, штатом и т. Д. Теперь единственное поле, которое вы можете указать, - это идентификатор места. То же самое касается внешнего интерфейса создания событий со страницы событий - вы должны найти место, которое распознает Facebook, вы не можете просто ввести произвольный адрес.
Однако, если вы создадите событие программно, а затем перейдете к его редактированию в Facebook, вы обнаружите, что вы можете ввести адрес вручную.