2016-03-03 81 views
1

我试图使用REST API使用说明,将增加一个用户的身份到通道:https://www.twilio.com/docs/api/ip-messaging/rest/members#action-createTwilio IP消息用户没有找到

我张贴到/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('[email protected]', <validChannelId>); 
+0

您可以分享您用于发布POST请求的代码吗? – philnash

+0

@philnash:完成。 – sparkFinder

回答

0

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); 
}); 

让我知道这是否有帮助。

+0

绝对有帮助。我曾尝试使用twilio客户端 - (npm [email protected]) - 但它没有名为IpMessagingClient的对象。 – sparkFinder

+0

将其降级为[email protected],您应该再次找到与文档相匹配的文档。 3.0.0系列预发布,文档还没有赶上。 – philnash

+0

很酷。谢谢您的帮助! – sparkFinder

相关问题