Апельсинки › Разработчикам
Виджеты для сайтов
Кнопка «Поделиться»Виджет группыВиджет комментариевМои сайтыКонструктор
Приложения и игры
ОбзорАвторизация и подписьМетоды APIПлатежиКлиентская библиотекаМобильная версияКабинет разработчика
Прочее
Робот SvBot

Методы REST API

Адрес: http://api.apelsinki.com/api/v1/{method}. Общие параметры: application_key, session_key (или uid при серверной подписи), sig, необязательный callback.

МетодПравоПараметры / описание
users.getCurrentUser—данные текущего пользователя (viewer)
users.getInfo1данные пользователей по списку uids (до 100)
users.isAppUser—установил ли текущий пользователь приложение
users.hasPermission—есть ли у приложения право (permission) от пользователя
friends.get32id друзей текущего пользователя
friends.getAppUsers—id друзей, у которых установлено приложение
friends.getOnline32id друзей, которые сейчас на сайте
photos.getAlbums2альбомы пользователя
photos.get2фотографии альбома (aid), до 100
photos.getProfile2текущее главное фото пользователя (pid, размеры, download_url)
photos.upload2загрузить JPG/PNG/GIF (POST multipart, поле photo, до 8 МБ) в альбом приложения; caption — подпись
storage.get—значения ключей (keys, через запятую) для текущего пользователя; global=1 — общие
storage.set—записать key=value (до 64 символов ключ, 64 КБ значение)
storage.delete—удалить key
stream.publish16опубликовать запись (message, url) в ленту пользователя
status.set8установить статус (text)
notifications.sendInvite—пригласить друзей (uids, text) — лимит в сутки
events.log—достижение в игре (text) → событие ленты «достижение в игре»
payment.create—создать платёж (amount, product_code, product_name) → payment_id и url окна оплаты
payment.status—
серверный
статус платежа (payment_id): 0 ожидает, 1 оплачен, 2 отменён, 3 колбэк доставлен
app.getUsersCount—
серверный
число установивших приложение

Формат пользователя

{"uid": 42, "first_name": "Игорь", "last_name": "Ганюков", "name": "Игорь Ганюков", "sex": "male", "age": 35, "city": "Курск", "country": "Россия",
 "pic_50": "…_s.jpg", "pic_110": "…_a.jpg", "pic_180": "…_m.jpg", "online": true, "url": "http://apelsinki.com/profile/42"}

Фотографии

Нужно право PHOTO_CONTENT (код 2). Все методы работают от имени текущего пользователя: session_key из браузера или uid при серверной подписи.

МетодПараметрыОтвет
photos.getAlbums—список альбомов: aid, title, count, cover
photos.getaid — альбомдо 100 фото альбома в формате фото (ниже)
photos.getProfile—текущее главное фото пользователя в формате фото или null, если его нет
photos.uploadPOST multipart/form-data: файл в поле photo (JPG, PNG или GIF, до 8 МБ), необязательно caption — подпись до 500 символовзагруженное фото в формате фото; кладётся в альбом пользователя с названием приложения (альбом создаётся сам). Не больше 30 загрузок в час на пользователя

Формат фото

// aid — в photos.getProfile и photos.upload, caption — в photos.get
{"pid": 19, "aid": 7, "caption": "На даче",
 "pic_50": "…_s.jpg", "pic_180": "…_m.jpg", "pic_640": "…_l.jpg", "pic_1280": "…_x.jpg",
 "width": 1280, "height": 960,
 "download_url": "http://api.apelsinki.com/api/v1/photo/19/5/1790990000/3f2a….jpg"}

pic_* — адреса для показа в браузере пользователя: картинки отдаются только вошедшим на сайт, поэтому сервер приложения их скачать не сможет. Чтобы обработать фото на своём сервере (рамка, коллаж), берите download_url: это фото 1280 px, ссылка подписана сайтом, работает без входа и живёт 1 час — потом запросите фото заново.

Загрузка: что подписывать

Подпись sig считается как обычно — по всем текстовым полям запроса, кроме sig. Сам файл photo в подписи не участвует.

# с сервера приложения (серверная подпись, uid — кому загрузить)
# sig = md5("application_key=K" + "caption=Моя рамка" + "uid=42" + application_secret)
#       поля по алфавиту, файл photo не входит
curl -F "application_key=K" -F "uid=42" -F "caption=Моя рамка" -F "sig=…" -F "photo=@frame.jpg" \
     http://api.apelsinki.com/api/v1/photos.upload
=> {"response": {"pid": 120, "aid": 31, "pic_640": "…", "download_url": "…"}}

Ошибки: NO_FILE — нет файла в поле photo; BAD_FILE — не картинка или больше 8 МБ (текст причины в msg); LIMIT — больше 30 загрузок за час.

Сделать фото главным

Сменить главное фото пользователя через API нельзя — это решает только сам пользователь. В браузере вызовите SVAPP.setProfilePhoto(pid, cb) (см. «Клиентская библиотека»): сайт откроет окно с этим фото и кнопками «Сделать главным» / «Отмена».

Хранилище

storage.set пишет данные текущего пользователя (счёт, прогресс). С global=1 — общие данные приложения (таблица рекордов); писать их может только сервер приложения (серверная подпись) или владелец.

Примеры

# друзья, у которых есть приложение
GET /api/v1/friends.getAppUsers?application_key=K&session_key=S&sig=…   => {"response":[7,15,203]}
# записать прогресс
POST /api/v1/storage.set  key=level value=12 application_key=K session_key=S sig=…   => {"response":true}
# серверный вызов: сколько пользователей
GET /api/v1/app.getUsersCount?application_key=K&sig=md5("application_key=K"+application_secret)