sendbird - 如何使用 SendBird 平台 API 和请求节点库创建 SendBird 用户
问题描述
我们正在构建一个 react-native 聊天应用程序。我们正在 google Firebase 上实施后端身份验证解决方案。在 Firebase Auth 中创建新用户会触发云功能,该功能应使用访问令牌创建新的 SendBird 用户。访问令牌将存储在 Cloud Firestore 中,以供用户下次登录时检索。
我们在执行通过平台 API 创建新用户的 POST 请求时遇到问题。我们正在使用 node.js 的 Request 库。我们能够到达 API 端点,但会返回以下对象:{ message: 'SendBird API Endpoint.', error: 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;
});
解决方案
您是否尝试过使用 url 的完整路径:(包括 /v3/users)?或者您可能需要像下面这样使用“baseUrl”? https://github.com/request/request#requestoptions-callback
此外,您需要确保您正确使用了 {application_id} 值和 {API Token} 值。您可以从 SendBird 的仪表板中仔细检查这一点。 http://dashboard.sendbird.com > 使用您的 ID 登录 > 选择您的 APP。“概览”菜单中有一个名为“应用程序凭据”的部分。您可以从那里仔细检查您的 API 请求 URL 和 API-Token 值。
推荐阅读
- apache-zookeeper - 配置无效,从 Kafka 启动 zookeper 时异常退出
- r - 删除 R 中只有一个人的组
- javascript - Sequelize 从某个嵌套级别返回空模型
- node.js - 编译错误 sequelize-typescript 但适用于 nodemon
- karate - 无法匹配在对象数组的索引中不匹配的相同 json(空手道)
- mysql - terraform azure mysql gtid_mode“ON”错误
- .htaccess - Nextjs动态页面在服务器刷新时不出现(构建后)
- windows - 在 Apache Directory Studio 中打开多个连接的问题
- amazon-web-services - 访问 Amazon S3 公共存储桶
- azure - Azure Runbook 中的 Webhook 数据输入参数语法