2012-03-02 61 views
1

我想在輸入我的畫布應用程序後刪除待處理的應用程序請求。我按照https://developers.facebook.com/docs/requests/#deleting的指示向本文檔中提到的URI發出了HTTP DELETE請求,使用請求ID來處理來自我的應用(可從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 2012-05-14 14:09:44

+0

@卡琳,你爲什麼認爲它更好? – ragingsquirrel3 2012-05-14 15:25:55

+3

也許人們認爲這也是連續的?考拉批量api採取requests.each,然後在'結束'批處理。參考。 https://github.com/arsduo/koala/wiki/Batch-requests – PrasannaK 2012-07-02 10:37:00

1

打開這個網址:

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

我仍然得到同樣的錯誤。這對你有用嗎? – ragingsquirrel3 2012-03-05 16:39:58

+0

sry這是錯的,我的帖子更新 – 2012-03-05 17:09:46

+0

因此,我似乎無法得到'{'和'}'格式正確。它們不允許爲原始碼,並且使用百分比編碼代碼包含不需要的'/'。我嘗試用'['按照Facebook的文檔替換它們,並且仍然得到了803,別名不存在的錯誤。 – ragingsquirrel3 2012-03-05 18:39:20

3

使用考拉是最容易在Ruby中在我看來:

@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 2012-03-27 17:44:58

+0

delete_object(request.id)應該是delete_object(id) – chiurox 2012-05-19 00:33:17

相關問題