>我有一个来自textlocal的SMS API,我想在Firestore Collection中创建新文档时使用它使用云功能发送SMS。 集合名称:预订短信。它将创建一个包含字段"数字","名称"和"服务"的文档。现在,SMY API 只需要很少的参数来发送短信。
API 网址:"https://api.textlocal.in/send/">
- 阿皮基
- 寄件人
- 消息。消息将被构造为"嗨,名称"您的"服务"预订已确认。
名称,服务和编号将来自Firestone文档,apikey和发件人将以cloudfunction代码编码。 现在我想创建云函数触发器,它将在创建文档时发送短信。下面是我尝试过的不完整代码,请帮助我完成它。
const functions = require('firebase-functions');
const admin = require("firebase-admin");
const axios = require("axios");
admin.initializeApp()
exports.sendSMS = functions.firestore
.document('BookingSMS/{BookingSMSId}')
.onCreate((snap, context) => {
const smsOptions = axios.create( {
baseURL: "https://api.textlocal.in/",
params: {
apiKey: "xQ1Fvg7uv14NaAEQHl2D", //Text local api key
sender: "ASDASD",
test: "true",
number: snap.data().phone,
service: snap.data().service,
message: `Hi, Your Booking for ${snap.data().service} is
Confirmed. Thank You.`
}
});
smsOptions.post("/send");
});
我还想在数字前添加 +91。 并使用名称和服务构造消息。
根据文档,没有对node.js的直接支持。不过,您应该能够使用他们的 get 请求。(希望你熟悉异步/等待( 尝试:
async function bookSMS(user) {
// 5. Send booking SMS to users
const smsoption = {
apikey: 'asasasasasasasasas',
sender: 'DDDDDD'
to: '${user.phone}',
message: 'Welcome!',
}
// 6. Process the sending of this SMS
await fetch(`https://api.textlocal.in/send/?apikey=${apiKey}&numbers=${user.phone}&message=Welcome!&sender=DDDDDD`)
}
您必须启用结算功能才能访问 Firebase 中的外部 API