在 Obelisk OAuth 项目中找不到 "route" 和 "Https"
Cannot find "route" and "Https" in Obelisk OAuth project
我正在努力将 Obelisk OAuth 和 运行 实施为 2 个问题。
我得到:
backend/src/Backend.hs:15:1: error:
Could not find module ‘Network.HTTP.Client.TLS’
Perhaps you meant
Network.HTTP.Client (from http-client-0.6.4)
Network.HTTP.Client.Body
Network.HTTP.Client.Core
Use -v to see a list of the files searched for.
|
15 | import qualified Network.HTTP.Client.TLS as Https
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Failed, two modules loaded.
我的 backend.cabal 构建中有这个取决于:
, http-client
, http-client-tls
当我尝试其他模块时,错误消息提示,它不包含此页面需要的功能。
- 当我尝试实现这个时:https://github.com/obsidiansystems/obelisk-oauth/blob/master/example/frontend/src/Frontend.hs
使用此代码:
FrontendRoute_Main -> do
elClass "div" "content" $ do
let r = AuthorizationRequest
{ _authorizationRequest_responseType = AuthorizationResponseType_Code
, _authorizationRequest_clientId = "fake-id"
, _authorizationRequest_redirectUri = Just BackendRoute_OAuth
, _authorizationRequest_scope = []
, _authorizationRequest_state = Just "none"
}
grantHref = authorizationRequestHref "https://app.asana.com/-/oauth_authorize" route checkedEncoder r
elAttr "a" ("href" =: grantHref) $ text "Authorize with Asana"
我收到这个错误:
frontend/src/Frontend.hs:360:96-100: error:
Variable not in scope: route :: T.Text
|
360 | grantHref = authorizationRequestHref "https://app.asana.com/-/oauth_authorize" route
checkedEncoder r
| ^^^^^
(即 route
函数。)
我不知道如何导入它。我查看了 ob hoogle
并显示 Snap.Core
但我无法成功导入它。
我从哪里得到路线?
这些是我的进口商品:
import Control.Monad
import qualified Data.Text as T
-- import qualified Data.Text.Encoding as TE
import Language.Javascript.JSaddle (eval, liftJSM)
import Data.Map ((!))
import Obelisk.Frontend
import Obelisk.Configs (getConfigs)
import Obelisk.Route (R)
import Obelisk.Route.Frontend
import Obelisk.Generated.Static
import Obelisk.OAuth.Authorization (AuthorizationRequest (..), AuthorizationResponseType (..), authorizationRequestHref)
import Reflex.Dom.Core
import Common.Route
import Common.DataModel
import qualified Data.Map as Map
import Data.Maybe (fromJust)
import Data.Monoid((<>))
Google 搜索 Network.HTTP.Client.TLS
,您将到达:
正如您从 URL 中看到的那样,这是 http-client-tls
包,因此将其添加到您的 backend.cabal 并重新启动 ob run
.
您在 ob hoogle
中没有看到这一点的原因是 Hoogle 服务器仅显示项目的 .cabal 文件中已有的包。如果您也重新启动 ob hoogle
,添加这个新包后,它现在将显示在 Hoogle。
至于其他错误,您应该始终阅读包含的示例(您的问题的答案是 here;README 仅显示片段,而不是完整的代码。
我正在努力将 Obelisk OAuth 和 运行 实施为 2 个问题。
我得到:
backend/src/Backend.hs:15:1: error:
Could not find module ‘Network.HTTP.Client.TLS’
Perhaps you meant
Network.HTTP.Client (from http-client-0.6.4)
Network.HTTP.Client.Body
Network.HTTP.Client.Core
Use -v to see a list of the files searched for.
|
15 | import qualified Network.HTTP.Client.TLS as Https
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Failed, two modules loaded.
我的 backend.cabal 构建中有这个取决于:
, http-client
, http-client-tls
当我尝试其他模块时,错误消息提示,它不包含此页面需要的功能。
- 当我尝试实现这个时:https://github.com/obsidiansystems/obelisk-oauth/blob/master/example/frontend/src/Frontend.hs
使用此代码:
FrontendRoute_Main -> do
elClass "div" "content" $ do
let r = AuthorizationRequest
{ _authorizationRequest_responseType = AuthorizationResponseType_Code
, _authorizationRequest_clientId = "fake-id"
, _authorizationRequest_redirectUri = Just BackendRoute_OAuth
, _authorizationRequest_scope = []
, _authorizationRequest_state = Just "none"
}
grantHref = authorizationRequestHref "https://app.asana.com/-/oauth_authorize" route checkedEncoder r
elAttr "a" ("href" =: grantHref) $ text "Authorize with Asana"
我收到这个错误:
frontend/src/Frontend.hs:360:96-100: error:
Variable not in scope: route :: T.Text
|
360 | grantHref = authorizationRequestHref "https://app.asana.com/-/oauth_authorize" route
checkedEncoder r
| ^^^^^
(即 route
函数。)
我不知道如何导入它。我查看了 ob hoogle
并显示 Snap.Core
但我无法成功导入它。
我从哪里得到路线?
这些是我的进口商品:
import Control.Monad
import qualified Data.Text as T
-- import qualified Data.Text.Encoding as TE
import Language.Javascript.JSaddle (eval, liftJSM)
import Data.Map ((!))
import Obelisk.Frontend
import Obelisk.Configs (getConfigs)
import Obelisk.Route (R)
import Obelisk.Route.Frontend
import Obelisk.Generated.Static
import Obelisk.OAuth.Authorization (AuthorizationRequest (..), AuthorizationResponseType (..), authorizationRequestHref)
import Reflex.Dom.Core
import Common.Route
import Common.DataModel
import qualified Data.Map as Map
import Data.Maybe (fromJust)
import Data.Monoid((<>))
Google 搜索 Network.HTTP.Client.TLS
,您将到达:
正如您从 URL 中看到的那样,这是 http-client-tls
包,因此将其添加到您的 backend.cabal 并重新启动 ob run
.
您在 ob hoogle
中没有看到这一点的原因是 Hoogle 服务器仅显示项目的 .cabal 文件中已有的包。如果您也重新启动 ob hoogle
,添加这个新包后,它现在将显示在 Hoogle。
至于其他错误,您应该始终阅读包含的示例(您的问题的答案是 here;README 仅显示片段,而不是完整的代码。