我試圖將我的網站(Heroku上)連接到從另一個單獨網站檢索用戶購物數據的API。API通過Heroku自定義域,主機名不在DNS緩存中
我可以使用命令行和我的瀏覽器成功連接到API;但我不能在生產中做同樣的事情。當我嘗試這樣做時,我收到日誌Hostname was NOT found in DNS cache
中的錯誤。
我懷疑這是因爲我的定製域名已被註冊的Oauth重定向,但不是我的Heroku 域。
我可以爲Oauth重定向設置其他域。在向API管理員提出設置addt'l域名的請求之前,如果有人能夠確認或否認這是我的問題的原因,並且設置我的Heroku域名能夠解決問題,我將不勝感激。或者如果有方法我可以獨佔使用我的自定義域,這看起來更直接。
謝謝!我在下面提供了一些細節。
通過命令行和瀏覽器成功的API調用
用戶直接到OAuth2登錄(我做這部分在Web瀏覽器): https://www.example.com/shop/oauth2/?response_type=code&client_id={client_id}&state={some_unique_state}&redirect_uri={your_site_url}
成功的用戶登錄,瀏覽器重定向到: {your_site_url}?code={auth code}&state={some_unique_state echoed back}
然後我使用在重定向url中提供的代碼在fo放捲曲命令。
獲得令牌和JSESSIONID: curl -v -X POST -u {client_id}:{client_secret} -H "Content-Length: 0" "https://www.example.com/api/v2.0/token?code={code}"
JSESSIONID和令牌下面的curl命令使用。
檢索數據: curl -H "Authorization: Bearer {token}" "https://www.example.com/api/v2.0/user/cart;jsessionid={jsessionid}?flags=true"
不成功嘗試做相同的生產(Heroku上,軌道)
在生產中,我能順利通過的oauth2登錄獲取用戶並生成授權碼。在嘗試通過控制器方法中的curl命令獲取令牌和jsessionid後,我收到DNS錯誤消息。我已經確認,捲曲適用於該控制器方法中的簡單任務(呈現http://www.google.com);而且我也證實,我正在成功組裝所有需要的變量。通過生產中的控制器方法執行時,與通過本地機器上的命令行執行相比,完全相同的curl命令失敗。
謝謝您提供的任何線索;我對API集成相對來說比較陌生,所以我肯定會錯過一些基本的東西。