2015-11-07 61 views
0

我在調查爲使用React.js的項目創建一個小型Twilio應用程序。我很擅長React和JavaScript(但不是專家),但我遇到了一些麻煩。使用React.js和Twilio API時出錯

最初,我試圖將帳戶上的所有消息加載到網頁。這裏是我有的代碼:

import React from 'react' 
import {connect} from 'react-redux' 

var accountSid = '####'; 
var authToken = "####"; 
var client = require('twilio')(accountSid, authToken); 

var msgList = [] 

const messages =() => { 
    client.messages.list(function(err, data) { 
    data.messages.forEach(function(message) { 
     msgList.push(message) 
    }); 
    }) 
    return msgList 
} 

class LandingPage extends React.Component { 
    render() { 
    return (
     <h1>Hello!</h1> 
    ) 
    } 
} 

export default connect(select)(LandingPage) 

(當然,還有更多的文件,但這是我目前的工作文件,我有問題)。

首先,當我在瀏覽器中加載這個了,我在控制檯得到一個錯誤:

Uncaught TypeError: querystring.unescape is not a function 

這顯然涉及client.messages.list(function(err, data) {線。

另外,我將如何去渲染每個message.body?我想我將不得不使用for循環,但我不確定那裏會去哪裏。

回答

3

您嘗試使用的庫是爲Node.js編寫的,我假設您嘗試在瀏覽器或React Native中使用它?幾位:

  • 您不應該使用客戶端應用程序中的Twilio API和您的帳戶SID和身份驗證令牌。這些憑證是Twilio帳戶的「王國的鑰匙」,如果您將它們放在任何客戶端應用程序中,這些憑證可能會受到影響。

  • 您嘗試使用的模塊是爲Node.js編寫的,並且可能無法在瀏覽器中使用。我沒有對它進行測試,但是如果您要以這種方式打包前端代碼,它可能與Browserify一起使用。

對於你想實現用例的,我想你的服務器上獲取信息,並通過Ajax發送到客戶端,而不是直接從客戶端擊中API。

+0

嘿凱文,謝謝你的建議!我知道有關SID和身份驗證令牌的安全問題,但不知道如何解決這些問題,所以我將查看使用Node和Ajax,謝謝。此外,我還沒有想到,我使用的Twilio代碼是用於Node的,因此必須位於Node環境中。所以謝謝,我會研究使用Browserify :) –