Это возможно - вам нужно использовать Facebook API Graph, который доступен методом Titanium.Facebook.requestWithGraphPath. В этом блоге описывается, как это делается на iOS, но рабочий процесс тот же - хотя автор говорит, что API Facebook недавно изменился, поэтому YMMV - я не смог найти какой-либо явной документации в ресурсах разработчика Facebook .
- Чтобы опубликовать регистрацию от имени пользователя, вам необходимо иметь расширенное разрешение «publish_checkins», предоставленное вашему приложению пользователем
- Получите широту и долготу устройства вашего пользователя
- Найти список мест рядом с местоположением пользователя, запросив их из Graph API
- Разрешить пользователю выбирать место
- Отправьте POST-запрос в API Graph Facebook с указанием пути «me / checkins», содержащего PlaceID, пользовательские координаты и дополнительные теги (идентификаторы друзей), а также сообщение о состоянии
Вот как вы бы запрашивали соответствующее разрешение у пользователя:
Titanium.Facebook.permissions = ['publish_checkins'];
Titanium.Facebook.authorize();
Вот пример URL, который вы будете использовать (используя Titanium.Network.createHTTPClient для выполнения запроса GET), чтобы найти список мест
https://graph.facebook.com/search?q=coffee&type=place¢er=37.76,122.427&distance=1000
Затем перечислите эти места в табличном представлении, и когда пользователь нажимает на одно, вы POST создаете регистрацию, предполагая, что у вас есть идентификатор места и его координаты в переменных с соответствующим именем:
var data = {
place: placeID
coordinates: {
latitude: latitude,
longitude: longitude
}
message: message,
tags: [
// tagged users (optional)
]
};
Titanium.Facebook.requestWithGraphPath('me/checkins', data, 'POST', function(e) {
if (e.success) {
alert("Success! Returned from FB: " + e.result);
} else {
if (e.error) {
alert(e.error);
} else {
alert("Unknown result");
}
}
});
Вам может понадобиться настроить свойства, которые вы отправляете в Facebook, если API изменился, но общий подход верен.