0

我们正在构建一个 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;
  });
4

1 回答 1

0

您是否尝试过使用 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 值。

于 2019-09-02T08:43:33.337 回答