我们正在构建一个本机聊天应用程序。我们正在Google Firebase上实现后端身份验证解决方案。在Firebase Auth中创建新用户会触发云功能,该功能应使用访问令牌创建新的SendBird用户。访问令牌将存储在Cloud Firestore中,准备在用户下次登录时进行检索。
我们无法实现通过平台API创建新用户的POST请求。我们正在为Node.js使用请求库。我们能够到达API端点,但是返回以下对象:{消息:“ SendBird API端点。”,错误:true}。没有迹象表明可能是错误。
将请求发送到基本URL时会发生这种情况。当我们将请求发送到/ users或/ v3 / users时,我们会收到403错误。
对于可能导致此问题的任何迹象,将不胜感激。
下面是云函数index.js代码
const functions = require('firebase-functions');
const admin = require("firebase-admin");
const request = require('request');
admin.initializeApp();
exports.handleNewUser = functions.auth.user().onCreate((user) => {
var newUserRequestBody = {
"user_id": user.email,
"nickname": user.email,
"profile_url": "",
"issue_access_token": true,
}
request.post({
headers: {
'Content-Type': 'application/json, charset=utf8',
'Api-Token': // API Token
},
url: 'https://api-{application_id}.sendbird.com',
form: newUserRequestBody
}, function(error, response, body){
if (!error && response.statusCode === 200) {
const info = JSON.parse(body);
console.log("request successful");
console.log(response.statusCode);
console.log(info);
}
else{
console.log("request unsuccessful");
console.log(response.statusCode);
console.log(error);
}
});
return null;
});
答案 0 :(得分:0)
您是否尝试使用指向url的完整端点路径(包括/ v3 / users)? 还是您可能需要使用如下所示的“ baseUrl”? https://github.com/request/request#requestoptions-callback
此外,您需要确保正确使用了{application_id}值和{API Token}值。 您可以从SendBird的仪表板中再次检查。 http://dashboard.sendbird.com>使用您的ID登录>选择您的APP。 “概述”菜单中有一个名为“应用程序凭据”的部分。 您可以从此处再次检查您的API请求网址和API令牌值。