【发布时间】:2018-08-12 23:46:40
【问题描述】:
我被分配了一项任务,从某个主题标签中获取所有推文并将该数据发送到我的应用程序。所以我决定使用 firebase 云功能,我生成了 twitter api 所需的密钥。我还测试了使用邮递员状态获取我的主页并且可以正常工作,但是当我在良好的云功能上测试我的代码时,我的问题是我无法让它正常工作,并且当我尝试这个端点时出现错误消息:
Error: could not handle the request
或
https://us-central1-don.cloudfunctions.net/api/statuses/user_timeline
这是我在 firebase 云函数上的代码
const functions = require('firebase-functions');
const admin = require('firebase-admin');
const express = require('express');
const Twitter = require('twitter');
admin.initializeApp(functions.config().firebase);
const client = new Twitter({
consumer_key: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
consumer_secret: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
access_token_key: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
access_token_secret: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
});
const app = express();
/* Express */
app.get('/', function(req,res){
client.get('statuses/user_timeline', {screen_name: 'nodejs', count: 5}, function (error, tweets, response) {
if (!error) {
response.send({ title: 'Express', tweets: tweets })
}
else {
response.send({ error: "this is error: " + error })
}
});
});
// Cloud Function
exports.api = functions.https.onRequest(app)
希望任何人都可以提出任何解决方案,谢谢。
更新:这是我的函数控制台,它也抛出错误:
api 函数执行耗时 8 毫秒,完成状态码:404
api 结算帐户未配置。外部网络无法访问 并且配额受到严格限制。配置结算帐号以删除 这些限制
【问题讨论】:
-
您不是在运行免费计划吗?如果是这样,出站请求仅限于 Google 的服务:stackoverflow.com/questions/48680257/…
-
@PhilippeSultan 是的,我正在使用免费计划,感谢您的帮助,我会升级我的帐户。
标签: javascript node.js firebase express google-cloud-functions