【问题标题】:Twilio IP Messaging user not found未找到 Twilio IP 消息传递用户
【发布时间】:2016-03-04 03:45:30
【问题描述】:

我正在尝试使用 REST API 使用此处的说明将用户身份添加到频道:https://www.twilio.com/docs/api/ip-messaging/rest/members#action-create

我正在发布到 /Channels/channelId/Members 端点 - 我确定我的请求结构正确。

我从 Twilio IP 消息系统收到一条错误消息:

{"code": 50200, "message": "User not found", "more_info": "https://www.twilio.com/docs/errors/50200", "status": 400}

我的理解是,当我们想将某人添加到频道时,我们可以提供自己的身份。如何在将用户添加到频道之前“注册”用户(使用电子邮件)?

编辑 - 代码:

var _getRequestBaseUrl = function() {
  return 'https://' +
    process.env.TWILIO_ACCOUNT_SID + ':' +
    process.env.TWILIO_AUTH_TOKEN + '@' +
    TWILIO_BASE + 'Services/' +
    process.env.TWILIO_IPM_SERVICE_SID + '/';
};

var addMemberToChannel = function(memberIdentity, channelId) {                                          
  var options = {
    url: _getRequestBaseUrl() + 'Channels/' + channelId + '/Members',                              
    method: 'POST',                                                                                
    headers: {
      'content-type': 'application/x-www-form-urlencoded',                                         
    },
    form: {
      Identity: memberIdentity,                                                                    
    },
  };                                                                                           
  request(options, function(error, response, body) {
    if (error) {
       // Getting the error here
    }
    // do stuff with response.
  });
};                                                             
addMemberToChannel('test1@example.com', <validChannelId>);

【问题讨论】:

  • 你能分享你用来发出 POST 请求的代码吗?

标签: rest twilio messaging


【解决方案1】:

这里是 Twilio 开发者宣传员。

为了将用户添加为频道成员,您确实需要先注册他们。查看creating a user in IP Messaging 的文档。

使用您的代码,您需要如下函数:

var createUser = function(memberIdentity) {
  var options = {
    url: _getRequestBaseUrl() + 'Users',
    method:'POST',
    headers: {
      'content-type': 'application/x-www-form-urlencoded',
    },
    form: {
      Identity: memberIdentity,            
    }
  };

  request(options, function(error, response, body) {
    if (error) {
       // User couldn't be created
    }
    // do stuff with user.
  });
}

我还可以建议您看看Twilio helper library for Node.js。它像您为您做的那样处理 URL 的创建。代码看起来也更简洁了,你可以像这样使用帮助库创建一个用户:

var accountSid = 'ACCOUNT_SID';
var authToken = 'AUTH_TOKEN';
var IpMessagingClient = require('twilio').IpMessagingClient;

var client = new IpMessagingClient(accountSid, authToken);
var service = client.services('SERVICE_SID');

service.users.create({
    identity: 'IDENTITY'
}).then(function(response) {
    console.log(response);
}).fail(function(error) {
    console.log(error);
});

让我知道这是否有帮助。

【讨论】:

  • 绝对有帮助。我确实尝试使用 twilio 客户端 - (npm twilio@3.0.0-rc.2) - 但它没有名为 IpMessagingClient 的对象。
  • 降级到 twilio@2.9.0 你应该会发现它再次与文档匹配。 3.0.0 系列处于预发布状态,文档还没有赶上。
  • 酷。感谢您的帮助!
  • 为什么 twilio 文档与已发布版本相比滞后?我们也热衷于使用 twilio 库进行呼叫/短信/IP 消息和视频对话,但是我们无法在使用 Twilio iOS SDK 通过远程通知向用户发送邀请方面取得任何进展。远程通知部分的文档很差。它确实告诉我如何设置远程通知。但是,即使遵循分步指南,我们也无法从 twilio 服务器接收任何通知。 didReceiveRemoteNotification 委托只是没有触发!!!
  • 嗨@DeepakBadiger,很抱歉您遇到了这个问题。 IP 消息系统目前仍处于测试阶段,因此文档等内容可能不像您希望的那样是最新的。 SO答案的评论部分可能不是讨论这个问题的最佳场所。您想通过 philnash@twilio.com 给我发送电子邮件并详细描述正在发生的事情吗?希望我可以帮助或将您的问题转给 Twilio 中的合适人选。
猜你喜欢
  • 1970-01-01
  • 2016-07-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多