我正在使用第三方API(基於REST JSON)。在它中,他們需要一個回調url,這樣我就可以獲取返回的令牌。爲HttpResponse設置回調
那麼這是如何工作的?如果我給他們一個url,它是如何掛鉤我的回調方法?我該如何指定方法,或者它的響應一旦返回......你如何連接所有這些?
因此,在我的HttpRequest
的標題中,我添加了API所要求的「callbackUrl」,「ourCallbackUrlHere」的自定義值。
我正在使用第三方API(基於REST JSON)。在它中,他們需要一個回調url,這樣我就可以獲取返回的令牌。爲HttpResponse設置回調
那麼這是如何工作的?如果我給他們一個url,它是如何掛鉤我的回調方法?我該如何指定方法,或者它的響應一旦返回......你如何連接所有這些?
因此,在我的HttpRequest
的標題中,我添加了API所要求的「callbackUrl」,「ourCallbackUrlHere」的自定義值。
我認爲術語'回調'可能會造成一些混淆。他們正在談論一個「回調URL」,因爲他們正在調回服務器上的URL。但是,這並不意味着您的服務器的初始請求代碼應該具有任何類型的「回調」來處理它。
你會做什麼是實現一個處理程序 - 也許是一個ASHX
通用處理器 - 即拉QueryString
很重視他們的服務器發送,並驗證其對你在你的數據庫是什麼,採取適當的行動。
因此,將會有兩個頁面/處理程序:通過REST發送初始API請求的接收方,以及接收第三方發出的「回調」的接收方請求。但是你的不是在你的第一個處理程序中實現一個回調函數(如,.NET delegate
)。
好吧,那麼如何同步第一個處理程序和第二個回收令牌? – PositiveGuy 2012-02-24 21:25:14
我不認爲我需要2。包裝項目中的服務器端代碼封裝了第三方API,因此我們可以使用它構建的是發出初始請求。我想我只需要一個處理程序來接收回調(令牌通過我們指定給他們的url)。 – PositiveGuy 2012-02-24 21:27:36
你不會同步它們。推遲你對第一個處理程序採取的行動;除非你從第三方獲得令牌,否則不要採取「官方」行動。這是在面向用戶的網站上完成的嗎?所以用戶做了一些觸發API調用的事情?如果是這樣,你應該實現某種頁面,說:「我們正在處理...」,也許自動刷新到一個狀態URL,以檢查令牌是否已經回來。這意味着你需要在某個地方存儲狀態(* not *在會話中,因爲回調將在不同的會話中) – 2012-02-24 21:28:29
您的意思是他們要求您在服務器上指定一個URL,以便驗證一些數據,他們會回叫?所以不是你「抓」它,而是「推」它? – 2012-02-24 20:11:20
爲了發回一些數據是...發送一個令牌字符串給我們。我想他們會通過我們的回調網址發回一個令牌,所以http:// callbackurl/someToken = 234#@ Gas643g,因爲我需要在返回到我們的回調網址時以某種方式獲取該值。這就是我不知道那個作品..我怎麼抓住它?如果我得到迴應,那麼確定這個回調網址是如何被使用的? – PositiveGuy 2012-02-24 20:44:43
查看http://tools.ietf.org/html/rfc5849並搜索「前一個請求中客戶端 提供的回調URI」。因此,主機會發送回我http:// ourcallbackUrl?oauth_token = hh5s93j4hdidpola&oauth_verifier = hfdp7dh39dks9884作爲示例 – PositiveGuy 2012-02-24 20:48:06