我正在尝试发送短信,我使用自定义和人性化的#34; From"名。
我可以发送短信 - 直到我设置了'来自'除了我有效的Twilio数字之外的任何内容属性。
我一直在使用发送到英国手机号码的英国Twilio号码进行测试,Twilio列为一个能够使用地址字母数字的国家。
背景:我从Parse云代码发送这些短信。
这是我的发送代码(Javascript)。
function sendCodeSms(phoneNumber, code, prefix) {
// Define a human friendly 'from' address
var twilioFrom = 'Friendly';
// Use appropriate 'from' number - cover countries that don't allow alphanumerical from addresses
switch (prefix) {
case "1":
twilioFrom = twilioPhoneNumber_1;
break;
}
// Create a promise
var promise = new Parse.Promise();
// Call the Twilio API
twilio.sendSms({
to: prefix + phoneNumber.replace(/\D/g, ''),
from: twilioFrom.replace(/\D/g, ''),
body: 'Your login PIN is ' + code
}, function(err, responseData) {
if (err) {
console.log(err);
promise.reject(err.message);
} else {
promise.resolve();
}
});
return promise;
}
如果我用我的一个有效的Twilit号码替换twilioFrom
值,那么SMS就会被正常发送。
有什么想法吗?救命?
(请不要让它成为男生的错误)
答案 0 :(得分:1)
看起来您正在使用。public class Add_Details extends Activity {
ImageButton addDoctor_img, addPatient_img, viewPatient_img;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add__details);
addDoctor_img = (ImageButton) findViewById(R.id.addDoctor_detils);
addPatient_img = (ImageButton) findViewById(R.id.addPatient_detils);
viewPatient_img = (ImageButton) findViewById(R.id.viewPatient_detils);
configureImageButton();
}
public void configureImageButton() {
// TODO Auto-generated method stub
try {
// add doctor details...
addDoctor_img.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent add_doc = new Intent(getApplicationContext(),
AddDoctor.class);
startActivity(add_doc);
finish();
}
});
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
public class AddDoctor extends Activity implements OnClickListener {
EditText f_name_doc, l_name_doc, suffix_doc, email_doc, password_doc,
confirm_doc, mob_doc, dob_doc, age_doc, specility_doc, city_doc;
RadioGroup gender;
RadioButton male_doc, female_doc;
Button add_doc;
ImageButton cal_dob;
private Calendar cal;
private int day;
private int month;
private int year;
static String URL = OpdLogin.URL;
public static final String url_adddoc = URL + "doctorregistration";
HttpClient client;
String text;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add_doctor);
f_name_doc = (EditText) findViewById(R.id.f_name_doc);
l_name_doc = (EditText) findViewById(R.id.l_name_doc);
suffix_doc = (EditText) findViewById(R.id.suffix_doc);
email_doc = (EditText) findViewById(R.id.email_doc);
password_doc = (EditText) findViewById(R.id.password_doc);
confirm_doc = (EditText) findViewById(R.id.confirm_doc);
mob_doc = (EditText) findViewById(R.id.mob_doc);
dob_doc = (EditText) findViewById(R.id.dob_doc);
age_doc = (EditText) findViewById(R.id.age_doc);
specility_doc = (EditText) findViewById(R.id.specility_doc);
city_doc = (EditText) findViewById(R.id.city_doc);
<ImageButton
android:id="@+id/addDoctor_detils"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_marginBottom="0dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="20dp"
android:layout_marginTop="30dp"
android:contentDescription="@string/AddDoctor"
android:onClick="configureImageButton"
android:padding="50dp"
android:src="@drawable/doctor_add" />
<activity
android:name=".AddDoctor"
android:label="@string/title_activity_add_doctor" >
<intent-filter>
<action android:name="com.rtminds.patientinformationsystem.AddDoctor" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
删除所有非数字字符。所以我认为发送到twilio的replace
将是一个空白字符串。
from
答案 1 :(得分:1)
Twilio开发者传道者在这里。
道歉,Twilio模块目前在Parse上过时了。我正在与他们的团队合作以使其更新。
与此同时,您无需编写整个模块即可使用此功能。 Parse Cloud提供了一个简单的httpRequest
模块,您可以使用该模块将请求发送到较新的Twilio端点。以下是使用Messages endpoint发送短信的功能示例:
var accountSid = 'AC123...'; // your account SID
var authToken = 'xyzabc...'; // your auth token
var toNumber = "+14515551234"; // the number you are sending a message to
var fromNumber = "HELLO"; // your alphanumeric string
var body = "This is a message"; // your message to be sent
// Build up the URL
var url = 'https://';
url += accountSid + ':' + authToken + '@'; // add auth to URL
url += 'api.twilio.com/2010-04-01/Accounts/';
url += accountSid;
url += '/Messages.json';
Parse.Cloud.httpRequest({
url: url,
method: "POST",
body: {
"To": toNumber,
"From": fromNumber,
"Body": body
}
}).then(function(httpResponse) {
// success
console.log(httpResponse.text);
// httpResponse.data is the parsed JSON response
},function(httpResponse) {
// error
console.error('Request failed with response code ' + httpResponse.status);
});
让我知道这是否有帮助。
答案 2 :(得分:0)
所以答案是(由dmullings发现)Parse提供的Twilio库只提供了Twilio功能的子集。
内置的Twilio Cloud Module提供了一个子集 Twilio客户可以使用的功能。如果您有这个功能 您可能希望此云模块不支持您感兴趣的内容 考虑将自己的Twilio JavaScript包装器编写为自定义云 模块。我们建议您查看Twilio节点结节的灵感。
所以解决方案是创建自己的Twilio模块。