2017-07-07 6 views
0

私のAmazon Alexa Skillと同じ機能を備えた、最初のGoogle Home Actionを作成しようとしています。このアクションの仕組みは、インテントを実行し、コード内の関数を呼び出します。関数が呼び出されると、GETを外部APIに送信してデータを取得します。展開されたFirebase機能外部APIに対してHTTP GETを実行できませんか?

これをローカルで実行するとき:firebase serve --only functionsngrok。これらはAPI.AIの関数をテストすることができ、正常に動作します。

しかし、私が使用してfirebaseし、これを展開することを決定したとき:firebase deploy --only functionsを、それは単に仕事と、このエラーがスローされません:

error: { RequestError: Error: getaddrinfo EAI_AGAIN newsapi.org:443 
    at new RequestError (/user_code/node_modules/request-promise/node_modules/request-promise-core/lib/errors.js:14:15) 
    at Request.plumbing.callback (/user_code/node_modules/request-promise/node_modules/request-promise-core/lib/plumbing.js:87:29) 
    at Request.RP$callback [as _callback] (/user_code/node_modules/request-promise/node_modules/request-promise-core/lib/plumbing.js:46:31) 
    at self.callback (/user_code/node_modules/request/request.js:188:22) 
    at emitOne (events.js:96:13) 
    at Request.emit (events.js:188:7) 
    at Request.onRequestError (/user_code/node_modules/request/request.js:884:8) 
    at emitOne (events.js:96:13) 
    at ClientRequest.emit (events.js:188:7) 
    at TLSSocket.socketErrorListener (_http_client.js:310:9) 
    at emitOne (events.js:96:13) 
    at TLSSocket.emit (events.js:188:7) 
    at connectErrorNT (net.js:1020:8) 
    at _combinedTickCallback (internal/process/next_tick.js:74:11) 
    at process._tickDomainCallback (internal/process/next_tick.js:122:9) 
    name: 'RequestError', 
    message: 'Error: getaddrinfo EAI_AGAIN newsapi.org:443', 
    cause: 
    { Error: getaddrinfo EAI_AGAIN newsapi.org:443 
     at Object.exports._errnoException (util.js:1026:11) 
     at errnoException (dns.js:33:15) 
     at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:76:26) 
    code: 'EAI_AGAIN', 
    errno: 'EAI_AGAIN', 
    syscall: 'getaddrinfo', 
    hostname: 'newsapi.org', 
    host: 'newsapi.org', 
    port: 443 }, 
    error: 
    { Error: getaddrinfo EAI_AGAIN newsapi.org:443 
     at Object.exports._errnoException (util.js:1026:11) 
     at errnoException (dns.js:33:15) 
     at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:76:26) 
    code: 'EAI_AGAIN', 
    errno: 'EAI_AGAIN', 
    syscall: 'getaddrinfo', 
    hostname: 'newsapi.org', 
    host: 'newsapi.org', 
    port: 443 }, 
    options: 
    { uri: 'https://newsapi.org/v1/articles?source=hacker-news&sortBy=top&apiKey=8b87b4978b22493cadeb351cce01d52a', 
    headers: { 'User-Agent': 'Request-Promise' }, 
    family: 4, 
    json: true, 
    callback: [Function: RP$callback], 
    transform: undefined, 
    simple: true, 
    resolveWithFullResponse: false, 
    transform2xxOnly: false }, 
    response: undefined } 

私ができるように私は、これは動作しないだろう、なぜ何らかの理由を見つけるように見えることはできませんローカルでテストし、要求で使用されているものと同じURLを使用してデータを取得します。この例では、request-promiseを使用してリクエストを完了していますが、ライブラリを使用しています:gotrequest、およびhttps

どうすればこの問題を解決できますか?

+0

あなたは、外部APIへのリクエストを作るために有料プランにする必要が支払わFirebase計画を使用していないことが考えられ、このために見つけた唯一の事。 https://stackoverflow.com/questions/42774807/firebase-functions-getaddrinfo-enotfound-api-sandbox-paypal-comを参照してください。 –

答えて

1

私は

関連する問題