【问题标题】:How to create SendBird user with SendBird Platform API and Request node library如何使用 SendBird 平台 API 和请求节点库创建 SendBird 用户
【发布时间】:2019-09-02 19:23:20
【问题描述】:

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

【问题讨论】:

    标签: sendbird


    【解决方案1】:

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

    【讨论】:

    • 感谢 Byungchul,我确实在实时版本中使用了我的真实应用凭据。我已经尝试了 /vs/users 端点,它返回 403 错误。
    • 我刚刚按照您的建议使用了 baseUrl 属性。有效!非常感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多