FaceBook API: получите объект запроса для идентификатора запроса - войдите в учетную запись, которая отправила запрос.Использование API «Диалог запросов» - PullRequest
6 голосов
/ 26 февраля 2011

Я использую «Диалог запросов» для создания запросов Facebook.Чтобы получить пользователю, которому были отправлены запросы, мне нужен доступ к объекту Request с помощью API графа.Я пробовал большинство настроек разрешений, которые казались подходящими (read_requests и user_about_me), чтобы получить объект запроса, но вместо этого я получил ложное в ответеИспользуются ли у меня неправильные разрешения?

Я могу получить доступ к объекту запроса с помощью графического API из учетной записи, на которую был отправлен запрос.

Return Data - Разделенный запятыми список созданных request_ids.Чтобы узнать, кому были отправлены запросы, вы должны просмотреть информацию для каждого объекта запроса, идентифицированного идентификатором запроса.

Ответы [ 5 ]

4 голосов
/ 26 февраля 2011

Я задавал себе этот вопрос некоторое время назад:
Как получить все запросы, отправленные мной ?

Ответ: вы не можете !
У вас есть два варианта:

  1. Сохранить request_id, возвращенное, когда пользователь отправил запрос, так что вы можете позжеполучить доступ к ним и получить необходимые данные
  2. Зная получателя!

Доказательство выше, вы можете проверить таблицу friend_request.Индексируемое поле - это поле uid_to!

1 голос
/ 16 апреля 2012

Это если вы хотите, чтобы он был в режиме Iframe, так как режим Iframe вам больше не нужен

function sendRequest() {
        FB.ui({                    
            method: 'apprequests',
            title: 'Invite friends to join you',
            message: 'Come play with me.'
            },
            function (res) {
                if (res && res.request_ids) {
                    var requests = res.request_ids.join(',');
                    $.post('FBRequest.ashx',
                        { request_ids: requests },
                        function (resp) { });                    
                }
            });
        return false;
    }
0 голосов
/ 24 апреля 2012

Вы можете получить доступ к списку идентификаторов пользователей как часть возвращаемых данных

FB.ui({
  method: 'apprequest',
  message: 'Use this thing',
}, function(result){
      //a list of ids are in here
      result.to;
});
0 голосов
/ 29 июля 2011

Не знаю, помогает ли это, но вот как я с этим справляюсь.

Javascript:

    function sendRequest() {
        FB.ui({
            display: 'iframe',                    
            method: 'apprequests',
            title: 'Invite friends to join you',
            message: 'Come play with me.'
            },
            function (res) {
                if (res && res.request_ids) {
                    var requests = res.request_ids.join(',');
                    $.post('FBRequest.ashx',
                        { request_ids: requests },
                        function (resp) { });                    
                }
            });
        return false;
    }

Сторона сервера (FBRequest.ashx):

        // get operation and data
        var ids = HttpContext.Current.Request["request_ids"];

        // if we have data
        if(ids != null) {

            // make batch graph request for request details
            var requestIds = ids.Split(',').Select(i => long.Parse(i)).ToList();
            var fbApp = new FacebookWebClient([AppId],[AppSecret]);
            dynamic parameters = new ExpandoObject();
            parameters.ids = ids;
            dynamic requests = fbApp.Get(parameters);

            // cycle through graph results and do stuff
            dynamic req = null;
            for(int i=0;i<requestIds.Count;i++) {
                try {
                    req = requests[requestIds[i].ToString()];
                    // do stuff with request, save to DB, etc.
                } catch (Exception ex) {
                    // error in finding request, continue...
                }
            }
        }
0 голосов
/ 28 июля 2011

Если вы хотите узнать идентификаторы пользователей, которым вы только что отправили запрос.Тогда этот код - то, что вам нужно:

var request = {
    message: msg,
    method: 'apprequests',
    title: 'Select some of your friends'
};
FB.ui(request, function (data) {
    if (data && data.request_ids) {

        // Get the uid of the person(s) who was/were invited
        var uids = new Array();
        FB.api("/?ids=" + data.request_ids.join(), function(data2) {
            for (i = 0; i<data.request_ids.length; i++) {   
                uids[i] = data2[data.request_ids[i]]['to']['id']; 
            }
            # do something with uids here
        });
    }
});
...