Как опубликовать чеки для пользователя Facebook - PullRequest
0 голосов
/ 04 декабря 2011

Я создаю приложение для iOS с помощью Appcelerator и встроенного модуля Facebook API.Мне нужно найти способ опубликовать регистрацию от имени пользователя.Пользователь должен иметь возможность зарегистрироваться на месте и / или на определенной странице FB.Это возможно?Я могу публиковать сообщения о состоянии, но не могу добавить местоположение (место).

1 Ответ

3 голосов
/ 04 декабря 2011

Это возможно - вам нужно использовать 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&center=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 изменился, но общий подход верен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...