2012-03-02 2 views
1

Я пытаюсь удалить ожидающие запросы приложений после ввода моего приложения холста. Я выполнил инструкции в https://developers.facebook.com/docs/requests/#deleting, чтобы выдать запрос HTTP DELETE в URI, упомянутый в документации, используя идентификатор запроса для запроса из моего приложения (доступ к нему из Graph API), а также токен доступа пользователя. Я получаю сообщение об ошибке: «Некоторые из запрошенных вами псевдонимов не существуют». Я подозреваю, что есть проблема с моим способом форматирования этого URI. Вот что я сделал, используя Ruby On Rails и HTTParty:Как удалить запросы на приложение Facebook?

HTTParty.delete("https://graph.facebook.com/#{outstanding_app_request_ids}?access_token=[#{session[:access_token]}]") 

Кто-нибудь есть пример URI, который успешно удаляет эти запросы?

ответ

2

я нашел гораздо более элегантное решение, которое использует камень Коала и удаляет оставшиеся запросы приложений одним махом с запросом пакета. Вот код, который получает запросы, а также удаляет их все сразу.

@graph = Koala::Facebook::API.new(ACCESS_TOKEN) 
raw_requests = @graph.get_connections("me", "apprequests") 
app_request_ids = [] 
raw_requests.each do |request| 
    app_request_ids << request["id"] 
end 
if app_request_ids.size > 0 
    @graph.batch do |batch_api| 
    app_request_ids.each do |app_request_id| 
     batch_api.delete_object(app_request_id) 
    end 
    end 
end 
+0

Решение Тима Уайта лучше – Calin

+0

@Calin, Почему вы думаете, что это лучше? – ragingsquirrel3

+3

Возможно, люди думают, что это тоже серийный номер? Пакет apache Koala выполняет запросы request.each, а затем пакетные процессы на 'end'. Ссылка https://github.com/arsduo/koala/wiki/Batch-requests – PrasannaK

1

Открыть URL:

https://graph.facebook.com/{outstandingapprequestids}_{userid}?access_token=ACCESS_TOKEN&method=DELETE 
+0

Я все еще получаю ту же ошибку. Это работает для вас? – ragingsquirrel3

+0

sry Это было не так, мой пост обновлен –

+0

С этим я не могу правильно отобразить '{' и '}'. Им не разрешено использовать raw, а использование процентных кодов включает в себя нежелательные «/». Я попытался заменить их «[» в соответствии с документацией Facebook, и я все еще получаю 803, псевдонимы не существуют. – ragingsquirrel3

3

Использование Koala проще в Руби, на мой взгляд:

@graph = Koala::Facebook.API.new(ACCESS_TOKEN) #Get access to graph 
app_requests = @graph.get_connections(UID, 'apprequests') #Get app_requests 

app_requests.collect {|request| request['id']}.each do |id| 
    @graph.delete_object(id) # Delete app_request 
end 
+0

Единственная проблема здесь в том, что запросы удаляются один за другим. Лучше всего удалить их сразу с помощью пакетного запроса. См. Выбранный ответ на этот вопрос. – ragingsquirrel3

+0

delete_object (request.id) должен быть delete_object (id) – chiurox

Смежные вопросы