我使用Twilio API验证电话号码,其余api使用命令行执行此操作将是:
curl -XGET "https://lookups.twilio.com/v1/PhoneNumbers/415-701-2311" -u "{AccountSid}:{AuthToken}"
现在我想知道如何使用angular 2实现这个http get请求?到目前为止,我有:
private url_verifyEmail: string = 'https://emailverifierapi.com/v2/'
constructor(private http: Http) {}
verifyPhone(phone: string): Observable<any> {
let params = new URLSearchParams()
params.set('AccountSid', `${constants.twilioAcountSID}`)
params.set('AuthToken', `${constants.twilioAuthToken}`)
return this.http.get(`${this.url_verifyPhone}${phone}`, {search: params})
.map(this.extractResponseData)
.catch(this.handleError)
}
但是响应给了我未经授权,说accountSid或authToken是不正确的?任何帮助,将不胜感激。感谢。
答案 0 :(得分:2)
这可能有效:
constructor(private http: Http) {}
verifyPhone(phone: string): Observable<any> {
return this.http.get(`https://${constants.twilioAcountSID}:${constants.twilioAuthToken}@lookups.twilio.com/v1/PhoneNumbers/415-701-2311${phone}`)
.map(this.extractResponseData)
.catch(this.handleError)
}
(IE不支持)
答案 1 :(得分:1)
Twilio开发者传道者在这里。
我们建议您不要从应用程序的客户端发出API请求。为此,您必须存储或能够从客户端访问您的Twilio帐户凭据(帐户SID和身份验证令牌)。
这意味着攻击者可以窃取您的凭据并接管您的Twilio帐户。
我们的建议是从您的服务器访问API。以下是verify numbers in Node.js using the Lookups API的方法。
让我知道这是否有帮助。