FAPI.Client.call

Функция используется для вызова REST-методов API.

Параметры

ПараметрТребуетсяОписание
paramsДаНабор пар ключ-значение для вызываемого метода (включая имя метода)
userCallbackДаФункция, которая будет вызвана после ответа сервера
resigНетТребуется, когда необходимо запросить подтверждение пользователя на какое-либо действие через отдельное превью. Во всех остальных случаях вызывайте функцию, указав только 2 параметра.

Функция userCallback имеет вид:

function(status, data, error) {
  /*
  * status = "ok" в случае успеха, "error" в случае ошибки;
  * data - объект-результат, например, ["565478477729"] для friends.get;
  * error = null в случае успеха, в случае ошибки это объект, содержащий описание и номер ошибки
  */
}

Примеры

Вызов без resig

/*
* Данная функция вызывается при успешной инициализации.
* Она содержит несколько примеров использования метода "FAPI.Client.call()".
*/
function initCard() {
    // сначала необходимо подготовить callback-функции (функции, которые будут вызваны после получения ответа)
    var callback_users_getCurrentUser = function(method, result, data){
        if (result) {
            fillCard(result);
        } else {
            processError(data);
        }
    };
 
    var callback_friends_get = function(method, result, data){
        if(result) {
            var randomFriendId = result[getRandomInt(0, result.length)];
            var callback_users_getInfo = function(method, result, data) {
                if (result) {
                    document.getElementById("random_friend_name_surname").innerHTML = result[0]["first_name"] + " " + result[0]["last_name"];
                } else {
                    processError(data);
                }
            }
            FAPI.Client.call({"method":"users.getInfo", "fields":"first_name,last_name", "uids":randomFriendId}, callback_users_getInfo);
        } else {
            processError(data);
        }
    }
 
    // а затем вызвать метод "FAPI.Client.call()", передав ему набор параметров и callback-функцию
 
    // пример №1: вызов метода API с параметрами
    FAPI.Client.call({"fields":"first_name,last_name,location,pic128x128","method":"users.getCurrentUser"}, callback_users_getCurrentUser);
    // пример №2: вызов метода без параметров
    FAPI.Client.call({"method":"friends.get"}, callback_friends_get);
}

Вызов с resig

/*
* Эта функция вызывается после завершения выполнения следующих методов:
* showPermissions, showInvite, showNotification, showPayment, showConfirmation, setWindowSize
*/
function API_callback(method, result, data) {
    alert("Method "+method+" finished with result "+result+", "+data);
     if (method == "showConfirmation" && result == "ok") {
         FAPI.Client.call(feedPostingObject, function(status, data, error) {
            console.log(status + "   " + data + " " + error["error_msg"]);
        }, data);
    }
}
 
/*
* Пример публикации в ленту.
*/
function publish() {
    var description_utf8 = "Can I publish?";
    var caption_utf8 = "Published text";
    // подготовка параметров для публикации
    feedPostingObject = {method: 'stream.publish',
                        message: description_utf8,
                     attachment: JSON.stringify({'caption': caption_utf8}),
                   action_links: '[]'
                        };
    // расчет подписи
    sig = FAPI.Client.calcSignature(feedPostingObject);
    // вызов окна подтверждения
    FAPI.UI.showConfirmation('stream.publish', description_utf8, sig);
}